OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4247|回复: 8

串口通讯问题求助!快速点击串口屏导致的数据丢包问题!

[复制链接]

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2019-1-29
在线时间
101 小时
发表于 2020-9-28 10:26:43 | 显示全部楼层 |阅读模式
10金钱
串口接收到一帧数据,主程序内执行相应指令,但如果在主程序执行指令时再接收到数据,则主程序不会再响应后面的指令了,请问各位大佬,这种情况该怎么优化呢?
我的想法是,不管用户点击屏幕多快,把收到的每一帧数据都存到数组中,然后按顺序发送给主程序依次执行,这种思路可行吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

219

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1426
注册时间
2020-5-12
在线时间
392 小时
发表于 2020-9-28 10:39:41 | 显示全部楼层
看你的数据是不是实时有效的,如果是实时有效的话,直接覆盖呗。如果是可以按顺序走的话,就做个队列就好了。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4478
金钱
4478
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-9-28 10:44:28 | 显示全部楼层
点击屏幕和串口有什么关系呢?
回复

使用道具 举报

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2019-1-29
在线时间
101 小时
 楼主| 发表于 2020-9-28 11:34:51 | 显示全部楼层
三叶草 发表于 2020-9-28 10:44
点击屏幕和串口有什么关系呢?

工业串口屏,特定按钮操作,例如增量调节、按钮调节等,每按一次,屏幕就会向串口发送一帧数据
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4478
金钱
4478
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-9-28 11:49:44 | 显示全部楼层
liuqiang1990 发表于 2020-9-28 11:34
工业串口屏,特定按钮操作,例如增量调节、按钮调节等,每按一次,屏幕就会向串口发送一帧数据

那就想好需求是什么样的,相应太快屏幕就会闪烁,相应太慢用户使用就会觉得很不爽
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2020-9-28 17:41:35 | 显示全部楼层
很明显没有加接收FIFO缓存,增加一个FIFO,先缓存数据,一个一个处理。
【1】串口带FIFO收发参考:https://acuity.blog.csdn.net/article/details/108367512
【2】环形FIFO: https://blog.csdn.net/qq_20553613/article/details/78902689
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-10-3 00:08:12 | 显示全部楼层
问题在串口屏吧
回复

使用道具 举报

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2019-1-29
在线时间
101 小时
 楼主| 发表于 2020-10-6 20:43:39 | 显示全部楼层
Acuity 发表于 2020-9-28 17:41
很明显没有加接收FIFO缓存,增加一个FIFO,先缓存数据,一个一个处理。
【1】串口带FIFO收发参考:https:/ ...

感谢老哥,确实老哥的思路是对的,目前单片机是接收一帧处理一帧,不能接收多帧,然后顺序处理。
回复

使用道具 举报

5

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2019-1-29
在线时间
101 小时
 楼主| 发表于 2020-10-6 20:48:14 | 显示全部楼层

确实是,目前的工业串口屏都没有应答机制,屏幕发给单片机数据,单片机接没接收到,屏幕均没有检测机制,就导致经常出现数据丢包问题,加上单片机没有用FIFO,可能屏幕上操作的快了点,单片机这边就没有及时响应了。目前的思路还是从代码层面去优化体验呢原子哥。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 11:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表