完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
功能
1、实现不同按钮按下可以发送不同的指令 2、当有数据时可以及时处理,一组数据是4096个,会持续发送很多组,要对这些数据进行16进制的处理和保存 目前程序碰到问题 1、程序按钮响应一开始可以及时响应,当程序运行一次后,无法及时发送数据,响应慢 2、程序的停止按键,按下需十几秒才能停止 想问问怎么优化这个程序
|
|
相关推荐
1 条评论
8个回答
|
|
串口的硬件缓冲区不会随软件缓冲区设置的改变而改变,即便你设置9000字节,常规串口硬件缓冲区依然是4096,这种架构和波特率下不是溢出就是无法实施结束。建议:1)采用生产者-消费者模式;2)消费者为双队列模式(第一个队列采集串口硬件缓冲区的所有数据,即有数据就采集;第二个队列将第一个队列中的数据按帧读取并处理)3)判断帧头不需要每个循环都执行,首次循环执行中用一个循环执行即可,找到帧头该循环结束,否则通过延时来结束。你的项目难点在于两点:1)如何在115200波特率下实现数据无损和实时的接收和处理;2)如何在数据无损的条件下结束该通讯程序。
|
|
8 条评论
|
|
本帖最后由 2021596042 于 2019-12-13 11:47 编辑
我还有一些其他的指令要对下位机进行命令的发送,所以这个模式还是可以的,现在我又遇到了循环套循环的问题,我一组4096个数据要变2048个16位数据放在第一列,后面后的其他组数据放在第二列,我之前while循环套for,有没有好的方法
|
|
1 条评论
|
|
这个是我之前做的,由于我在其他的程序上改,那个0是没用的,后面是数据保存我还没改完,只是不让报错可以运行
|
|
|
|
设计模式选错了,应该使用队列。按钮相应是入队列,在出队列来处理数据
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1196 浏览 2 评论
labview如何实现电机位置与图像清晰度计算值相对应,或者说如何实现电机每步距计算一次清晰度值?
1643 浏览 2 评论
2196 浏览 1 评论
2587 浏览 2 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
2993 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 10:53 , Processed in 0.589824 second(s), Total 73, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号