目录
原理图
图1:采用芯片 stm32f407vet6
图2:采用使用SP232进行串口通讯,使用PA9/PA10引脚
DMA模式
根据上面原理图,可知使用PA9/PA10进行RS232通讯,查找数据手册后,PA9为发送引脚,PA10为接收引脚。
编写代码:
1、初始化(需要GPIO初始化、USART初始化、NVIC初始化)
完成初始化后,再打开相应的使能(相对于中断模式,在其基础上需要初始化DMA通道)
2、GPIO初始化
使用AF模式引脚
3、USART初始化
115200、8位数据、1个停止位、无校验位
4、NVIC初始化
优先级随意
5、DMA初始化
基于407芯片的标准库这里应该有个bug,normal模式下接收后可能DMA指针不对,,初始化一次,才能接收一次,这里改为circular模式。
6、中断服务函数
中断模式下,接收中断接收字节,空闲中断处理接收的所有字节(发送接收到的所有数据)
7、发送函数
这个模式下,可以一次将数据推送到DMA通道,后续由DMA发送,效率更高。
8、效果演示
发送了两次,第二次时打断点查看接收缓存。
演示例程
14-DMA模式串口通讯-USART1.rar: (访问密码:1666)