 
- UID
- 1029342
- 性别
- 男
|

八、ADC
1)设置外设地址。
设置外设地址通过 DMA1_CPAR4 来设置,我们只要在这个寄存器里面写入&USART1_DR 的值就可以了。该地址将作为 DMA 传输的目标地址。
2)设置存储器地址。
设置存储器地址,我们通过 DMA1_CMAR4 来设置,假设我们要把数组 SendBuf 作为存储器,那么我们在该寄存器写入&SendBuf就可以了。该地址将作为 DMA 传输的源地址。
3)设置传输数据量。
通过 DMA1_CNDTR4 来设置DMA1 通道 4的数据传输量, 这里面写入此次你要传输的数据量就可以了,也就是 SendBuf 的大小。该寄存器的数值将在 DMA启动后自减,每次新的 DMA 传输,都重新向该寄存器写入要传输的数据量。
4)设置通道 4 的配置信息。
配置信息通过 DMA1_CCR4 来设置。这里我们设置存储器和外设的数据位宽均为 8,且模式是存储器到外设的存储器增量模式。优先级可以随便设置,因为我们只有一个通道被开启了。假设有多个通道开启(最多 7 个),那么就要设置优先级了,DMA 仲裁器将根据这些优先级的设置来决定先执行那个通道的 DMA。优先级越高的,越早执行,当优先级相同的时候,根据硬件上的编号来决定哪个先执行(编号越小越优先)。
5)使能DMA1 通道 4,启动传输。
在以上配置都完成了之后,我们就使能 DMA1_CCR4 的最低位开启 DMA 传输,这里注意要设置 USART1 的使能 DMA 传输位,通过 USART1->CR3的第七位设置。
通过以上 5步设置,我们就可以启动一次 USART1 的DMA 传输了。
九、SPI
1)配置相关引脚的复用功能,使能 SPI1 时钟。
我们要用 SPI1,第一步就要是能 SPI1 的时钟,SPI1 的时钟通过 APB2ENR 的第 12 位来设置。其次要设置 SPI1 的相关引脚为复用输出,这样才会连接到 SPI1 上否则这些 IO口还是默认的状态,也就是标准输入输出口。这里我们使用的是 PA5、6、7 这3 个(SCK.、MISO、MOSI,CS使用软件管理方式),所以设置这三个为复用 IO。
2)设置 SPI1 工作模式。
这一步全部是通过 SPI1_CR1 来设置,我们设置 SPI1 为主机模式,设置数据格式为 8位,然后通过 CPOL 和 CPHA 位来设置 SCK时钟极性及采样方式。并设置 SPI1 的时钟频率(最大18Mhz),以及数据的格式(MSB 在前还是 LSB在前)。
3)使能 SPI1。
这一步通过 SPI1_CR1 的 bit6 来设置,以启动 SPI1,在启动之后,我们就可以开始 SPI通讯了。 |
|