[STM32F1] USART DMA+idle接收

[复制链接]
1621|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

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