怎么处理好多线程与串口通信的关系!!!
本帖最后由 ssmyjiob 于 2019-9-25 11:47 编辑1 串口接收
2 写入安全队列
3 开辟线程读安全队列
4 数据处理 显示
这四个模块主要为了实现数据的实时快速接收处理显示,但是在调试上需要下很大的功夫,本方案有不足的地方请指教,如若谁有更好的方案望能共享,共同进步。谢谢
本帖最后由 cvifan 于 2018-8-31 11:42 编辑
感谢分享,赞 cvifan 发表于 2018-8-31 11:37
感谢分享,赞
个人思路,有不合适的地方可以指出
线程信号灯问题没有考虑 hewusd 发表于 2018-9-23 18:54
线程信号灯问题没有考虑
愿闻其详
没啥,只是觉得用中断处理比较好,效率比较高,稳定一些。 hewusd 发表于 2018-11-3 16:40
没啥,只是觉得用中断处理比较好,效率比较高,稳定一些。
串口中断小批量数据可以,高速大数据就容易出现不稳定因素,比如:在传输数据过程中操作面板控件,容易导致接收卡顿,而且假如数据处理慢容易显示不全,丢失数据。
你好,我现在是这样的我电脑连接的fpga1ms向我电脑发送一条数据包10多个字节的,我在串口回传函数中将标志位置1的,并另外开了一个线程一旦标志位置1,即将数据包进行解析存储到buff中,但调试后我发现会丢失很多数据包,有什么解决办法吗?用你说的安全队列可以解决吗??? 不错!感谢分享!
yhabcd2003yhxy 发表于 2019-9-18 16:45
不错!感谢分享!
1 串口接收2 写入安全队列
3 开辟线程读安全队列
4 数据处理 显示
看不到啊
感觉这位哥们儿是删除了附件 哦不好意思,这里是labwindows/cvi的分区,我以为是labview tester 发表于 2019-9-23 08:46
感觉这位哥们儿是删除了附件
调试发现了点问题,最后准备修改在上传,一直在忙不好意思
ssmyjiob 发表于 2018-11-19 12:26
串口中断小批量数据可以,高速大数据就容易出现不稳定因素,比如:在传输数据过程中操作面板控件,容易导 ...
你好,这种情况怎么解决呢,我这样做的,不行。
1串口回调中读取数据,并写入安全队列,置为辅助线程处理标志
2辅助线程中判断标志,如果置位,说明已经完成一次接收,在此读取安全队列数据,并将数据显示到textbox
实际测试发现,数据量大时会产生死机,再串口回调中死,提示超过串口缓存的数组了。
页:
[1]
2