单片机学习小组
登录
直播中
石飞鹏
7年用户
974经验值
私信
关注
怎样使用FIFO去实现串口数据的收发功能呢
开启该帖子的消息推送
串口
驱动程序
怎样使用FIFO去实现串口数据的收发功能呢?其基本实现流程有哪些呢?
回帖
(1)
陈燕
2022-1-27 11:06:11
1、Cubemx串口配置
使用Cubmx对串口进行配置如下:
2、驱动程序编写
2.1驱动初始化
进行串口收发FIFO的创建,进行发送FIFO回调函数的初始化,调用函数UsartStartCloseHT实现串口DMA+IDLE模式接收,同时关闭DMA的半满中断,减少进中断次数。
2.2串口接收处理
使用HAL库使能串口接收DMA+IDLE后,串口在接收完成或DMA满后会进入到中断中,并调用回调函数HAL_UARTEx_RxEventCallback,我们在该函数中将接收到的数据进行FIFO写入操作。
串口接收过程中我们使用了两个缓冲区,中断中进行缓冲区的切换及数据向FIFO的写入操作。
2.2串口发送处理
串口发送过程中,先将数据压入到串口发送的FIFO中,判断串口发送不繁忙时,将数据读取到发送缓冲区记性DMA发送。
DMA发送完成后会进入发送完成中断,中断对未发送完的数据进行继续发送
2.3串口FIFO的定时器功能
FIFO定时器遍历FIFO链表
对接收FIFO实现备份缓冲到FIFO的写入操作
对发送FIFO实现未发送完成数据的继续发送。
2.3串口错误处理
解决串口接收发送过程中发生溢出中断等意外情况
2.3详细完整代码
1)中断中在FIFO不繁忙时将接收数据写入到FIFO中。
2)中断中在FIFO繁忙时,将数据写入到BACK区域
通过FIFO的定时器来实现BACK数据向FIFO的写入功能。
串口的发送使用发送完成中断结合DMA的定时器回调功能实现。
1、Cubemx串口配置
使用Cubmx对串口进行配置如下:
2、驱动程序编写
2.1驱动初始化
进行串口收发FIFO的创建,进行发送FIFO回调函数的初始化,调用函数UsartStartCloseHT实现串口DMA+IDLE模式接收,同时关闭DMA的半满中断,减少进中断次数。
2.2串口接收处理
使用HAL库使能串口接收DMA+IDLE后,串口在接收完成或DMA满后会进入到中断中,并调用回调函数HAL_UARTEx_RxEventCallback,我们在该函数中将接收到的数据进行FIFO写入操作。
串口接收过程中我们使用了两个缓冲区,中断中进行缓冲区的切换及数据向FIFO的写入操作。
2.2串口发送处理
串口发送过程中,先将数据压入到串口发送的FIFO中,判断串口发送不繁忙时,将数据读取到发送缓冲区记性DMA发送。
DMA发送完成后会进入发送完成中断,中断对未发送完的数据进行继续发送
2.3串口FIFO的定时器功能
FIFO定时器遍历FIFO链表
对接收FIFO实现备份缓冲到FIFO的写入操作
对发送FIFO实现未发送完成数据的继续发送。
2.3串口错误处理
解决串口接收发送过程中发生溢出中断等意外情况
2.3详细完整代码
1)中断中在FIFO不繁忙时将接收数据写入到FIFO中。
2)中断中在FIFO繁忙时,将数据写入到BACK区域
通过FIFO的定时器来实现BACK数据向FIFO的写入功能。
串口的发送使用发送完成中断结合DMA的定时器回调功能实现。
举报
更多回帖
rotate(-90deg);
回复
相关问答
串口
驱动程序
FIFO
是如何结合STM32的DMA
去
实现
串口
数据
的
收发
呢
2021-12-07
1580
如何利用软件模拟的方法
去
实现
串口
收发
的
功能
呢
2021-12-14
812
DMA函数
怎样
去
完成对
串口
数据
的
收发
呢
2021-12-08
1550
怎样
去
解决STM32F207
串口
有无校验时
数据
收发
的问题
呢
2021-12-10
1052
如何
去
实现
USB模拟
串口
收发
的
功能
呢
2021-12-06
1966
STM32是
怎样
使用
FIFO
去
实现
USART
串口
发送中断的
2021-11-16
1319
怎样
使用
串口
USART1
去
实现
接收和发送
功能
呢
2022-01-20
1828
STM327的8个
串口
的
FIFO
驱动该如何
去
实现
呢
2021-11-29
699
如何
去
实现
stm32
串口
usart1的
收发
代码
呢
?
2021-12-09
1436
USART通常有哪几种模式接收方式
呢
?
怎样
去
选择
呢
2022-01-27
963
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分