uart的DMA接收问题

发表在 内核学习营2019-4-28 16:44 [复制链接] 5 258

我今天使用uart2的DMA模式进行接收串口数据,发现接收时会出现数据被分割的现象,经过测试现象是由于接收缓冲区设置为64导致的,现在想请大家帮忙,告诉我接收一条消息后如何可清除缓冲区的长度
2 }( `/ U2 o: W* _9 F
QQ截图20190428164112.png
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-4-28 18:13:42 | 显示全部楼层
这个恰巧不是问题,而是体现出 DMA 的特性
使用道具 举报 回复
发表于 2019-4-29 09:30:53 | 显示全部楼层
armink 发表于 2019-4-28 18:13; K. e/ ^4 y9 Z+ X* P! J2 a
这个恰巧不是问题,而是体现出 DMA 的特性

) P' @  j! f+ S, j9 H' [那如何才能修改成完整的序列呢
使用道具 举报 回复
发表于 2019-4-29 09:38:20 | 显示全部楼层
这个跟串口缓冲区大小没关系,也不是一个问题,DMA结合了串口空闲中断,DMA半满中断,DMA满中断使用。一串数据按长度和状态而定可能触发这几种中的中断。
使用道具 举报 回复
发表于 2019-4-29 10:12:10 | 显示全部楼层
Energy_Reader 发表于 2019-4-29 09:30
8 G* [* \4 C( Q那如何才能修改成完整的序列呢
: b0 f3 V9 R' T2 J% ~
协议层处理好,丢给上层,毕竟串口是字符设备,不可能考虑到数据帧的问题
使用道具 举报 回复
发表于 2019-4-29 10:16:56 | 显示全部楼层
armink 发表于 2019-4-29 10:128 a& H2 M- x  V9 k
协议层处理好,丢给上层,毕竟串口是字符设备,不可能考虑到数据帧的问题 ...
4 A* N5 w2 T. S3 l1 x
知道了谢谢
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

快速回复 返回顶部 返回列表