打印
[STM32F1]

USART DMA+idle接收

[复制链接]
1381|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ysmz4|  楼主 | 2015-7-1 14:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问有没有可能串口DMA接收端把收到的两包认为是一包?(即怎么知道两包间的间隔一定大于1帧的时长)
沙发
Leeone| | 2015-7-1 14:58 | 只看该作者
大于一帧传输时间会产生空闲中断,即表明一个包结束。实际运用遇到两个包紧挨着发送会把两包作为一包接收并不会产生空闲中断。

使用特权

评论回复
板凳
ysmz4|  楼主 | 2015-7-1 15:10 | 只看该作者
Leeone 发表于 2015-7-1 14:58
大于一帧传输时间会产生空闲中断,即表明一个包结束。实际运用遇到两个包紧挨着发送会把两包作为一包接收并 ...

因为我使用idle来判断结束的。所以头儿非让我找证据,他说数据不丢失是最基本的。
如果DMA接收真的把两包看做一包,只能将第二包数据丢弃或者改上层协议,这两个都不够好。
整个学了一遍。idle需要一个字符的时长,modbus需要3-5个字符时长来证明到结尾。但是还是没说服力告诉头儿用DMA idle接收来替代发送后给出延时。
现在我需要足够证据证明(如果能的话)两包间的时延大于一帧。这是不是需要计算指令之类的了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

17

帖子

0

粉丝