[应用相关] STM32 USART RX使用DMA接收的话,如何判断接收完一帧数据呢

[复制链接]
46848|71
乌月明星稀 发表于 2013-8-26 21:32 | 显示全部楼层
如果要使用DMA作为USART接收控制器的话,必须要有一个固定的数据帧格式,比如:数据头+设备号+数据长度+数据包;根据数据帧格式进行接收配置DMA。帧格式是为了防止从机在通信中停机或者数据丢包的情况下,不至于导致之后的数据通信都瘫痪。
janesnf 发表于 2014-3-20 11:41 | 显示全部楼层
mark! 单片机菜鸟学习学习
lyzhangxiang 发表于 2014-7-8 16:53 | 显示全部楼层
不错的老帖子
loodao 发表于 2014-8-25 15:51 | 显示全部楼层
modbus的协议不就可以做到吗
罗菜鸟 发表于 2014-11-5 23:11 | 显示全部楼层
你们真是太幼稚,STM32的UART有个中断叫RX IDLE
sunguoqiang 发表于 2014-12-24 16:53 | 显示全部楼层
如果发送方发送的一帧数据分成几段了(比如发送方系统中有很多中断导致发送时有可能会被中断)此时 会产生几次IDLE中断不太不好处理
zhshw0614 发表于 2016-2-17 14:39 | 显示全部楼层
乌月明星稀 发表于 2013-8-26 21:32
如果要使用DMA作为USART接收控制器的话,必须要有一个固定的数据帧格式,比如:数据头+设备号+数据长度+数 ...

我用SPI1 DMA1方式读取外部AD数据,把DMA接收到的AD数据和其他变量数据数组重新组合之后再通过SPI3 DMA2发出去,数据会出错,如果不重新组合,直接把收到的数据数组转发出去不会出错,这是什么原因,有什么好的解决办法
li123452 发表于 2016-4-6 13:40 | 显示全部楼层
项目要求波特率921.6Kbps,字节超时10us,帧超时1ms。
hugo0chen 发表于 2016-4-23 13:23 | 显示全部楼层
mark 真是好贴一枚
c~琳 发表于 2016-11-21 15:54 | 显示全部楼层
devenkong 发表于 2010-10-18 23:53
无论是串口还是SPI口,作为通信接口有多种处理方式,没有说timeout和定长接收或者中断中处理一定是哪种好, ...

总结的很全面,学习啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部