[技术问答] 新唐n76e003双串口问题

[复制链接]
1339|7
 楼主| 卧龙小子 发表于 2019-10-23 12:17 | 显示全部楼层 |阅读模式
现有一项目同时要使用串口0和串口1,串口0波特率为2400,串口1为19200,程序运行大致就是串口1接收数据,完成动作再由串口0下发到另一从机接收完成相应动作,要求主从机实时改变例如点灯要同时亮灭,相当于串口1接收到数据马上要用串口0发送,问:当串口1接收6个数据改变太快时,串口0发送22个数会跟不上,有时会漏发,或单片机卡死,这是什么问题呢???
yjgna 发表于 2019-10-23 17:18 | 显示全部楼层
用RAM保存串口1接收的数据,在串口0空闲时从RAM中按字节发送。应该能解决漏发。
tianxj01 发表于 2019-10-23 18:03 | 显示全部楼层
波特率不一样,要求实时转发,尤其是高的接收,低的发送,算算时间,肯定不对头,所以,简单的转发肯定会有问题不是?只有把接收到是数据全部缓存起来,然后波特率低的,从第一个数据时开始启动硬件发送,并不断检查缓存区,根据缓存情况进行后续发送,则肯定不会发生漏发、错发情况。
幸福小强 发表于 2019-10-26 23:43 | 显示全部楼层
这种思路都是错误的。
幸福小强 发表于 2019-10-26 23:44 | 显示全部楼层
这个情况就跟,一个开车的,跟一个骑自行车的互相讲话一样,你能讲的通吗,人家呼啸而过了。
wahahaheihei 发表于 2019-10-29 00:23 | 显示全部楼层
两个通信的串口,波特率和格式必须一致才行。
wahahaheihei 发表于 2019-10-29 00:25 | 显示全部楼层
你好比两个人接力办事,比如说扔球,一个人只能一秒扔1个,结果另外一个扔3个的不停砸给他。
wahahaheihei 发表于 2019-10-29 00:25 | 显示全部楼层
所以你要算好,你发送的频率要能让低速的那个来得及发送才行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

23

帖子

0

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