实现的功能: 使用MDA方式把串口接受的数据在发送给串口(当然也可以做其他解析控制使用)
1. 先初始化 时钟使用外部的晶振配置系统时钟为48Mhz
2. 串口参数配置
3. 使能中断
4. 配置串口接受DMA ,和串口发送MDA,发送DMA设置为低优先级
5. 配置好直接导出程序,打开工程,这个工程对外设的初始化已经完成
6. 接下来就是对功能的实现步骤
(1)配置串口为DMA接受模式
(2)配置串口的空闲中断
(3)串口空闲中断中与DMA使用,检测是否接受完一帧数据包
串口空闲中断操作伪代码:
if(空闲中锻) { 1. 停止MDA搬运数据 2. 读取接受数据的长度(DMA中) 3. 数据处理解析控制操作 4. 开启DMA 继续搬运数据 }
串口空闲中断处理,串口空闲中断是当串口接受数据时候当有一段时间检测到没有数据来则产生中断信号
xxxx_it.c 中断函数文件:
main.c文件中:
通过Stm32CubeMX5 配置好外设后只需在工程中添加这几行代码即可实现