串口数据堵塞问题

[复制链接]
2665|5
 楼主| happyisgood 发表于 2016-12-28 13:44 | 显示全部楼层 |阅读模式
假如用串口发送50个字节的数据(数组长度只有50),波特率为9600,数据传输需要48个毫秒。
但在20毫秒的时候又需要发送50个字节,就会造成发送数据堵塞,
有什么好的程序结构或算法能解决这个问题???
潜龙出山 发表于 2016-12-30 17:13 | 显示全部楼层
不知道您的接收端是如何进行处理的,意思是在首次接收完50个字节以后的28ms必须接收到新的50个字节吗?

如果是这样的话,因为串口堵住了,可以考虑用别的串口发送新一组数据。

实在不行,也可以用软件模拟一路串口来发送。

Simon21ic 发表于 2016-12-31 00:26 | 显示全部楼层
除非特殊情况,一般应用中都不应该有完全占用CPU的阻塞
对于串口这种,最适合的就是流驱动了

如果有50字节数据要发送,先写入到流中,然后后台串口驱动再发送,当20ms后,又有新的数据要发送的话,继续写入到流中
feelhyq 发表于 2017-1-16 12:51 | 显示全部楼层
如果楼主是担心被阻塞,可以考虑使用DMA的方式,释放出CPU
ln6889 发表于 2017-2-15 17:11 | 显示全部楼层
本帖最后由 ln6889 于 2017-2-15 17:14 编辑

排队
renxiaolin 发表于 2017-2-15 17:39 | 显示全部楼层
本帖最后由 renxiaolin 于 2017-2-16 08:44 编辑

该问题在四楼是比较正确的办法呀  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

25

帖子

0

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