完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
下位机数据通过一个9针485转USB的转接器上传,只接了RX,TX。下位机用示波器看,数据是2.5ms一帧帧上传的。但是串口读出来是挤在一起的一大堆。下位机数据报多了之后,上位机的指令还发不出去。怎么控制两个的通信呢? |
|
相关推荐
3个回答
|
|
按照通用的串口去控制,其他都不要改动,一次不成功,就多发几次。几次不行换方案。
485上半双工通讯,一般情况都是主设备去问从设备数据。你这从设备自动发送,主设备也需要随时发送,根本不适合485,改用422,问题解决。 |
|
|
|
在这种情况下,可以考虑使用软件方法实现半双工通信。下面是一种可能的解决方案:
1. 在上位机上使用一个循环来读取串口接收缓冲区中的数据,并将其按照帧的方式进行解析。根据数据的起始标志和帧长度进行帧的切割和解析。 2. 使用一个FIFO(First In First Out)队列来存储上位机发送的指令。在需要发送指令时,从队列中取出并发送。 3. 在上位机中,使用定时器来控制指令的发送间隔,确保上位机发送指令的速度不会超过下位机的处理速度。 4. 在下位机上,使用一个循环来读取串口接收缓冲区中的数据,并将其解析为帧数据。 5. 下位机使用一个标志位来表示是否有新的数据需要发送给上位机。如果有新的数据,则将其放入一个发送缓冲区中。 6. 在下位机中,使用一个定时器来控制数据的发送间隔。在定时器超时时,将发送缓冲区中的数据发送给上位机。 通过这种方式,可以实现上位机和下位机之间的半双工通信。上位机可以及时发送指令,并读取下位机发送的数据,而下位机也可以根据需要将数据发送给上位机。请注意,由于没有使用硬件流控制信号,数据的发送和接收速度需要进行合理的控制,以避免数据产生丢失或溢出的情况。 |
|
|
|
改成422四线,发送与接收是分开的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
452 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
915 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1496 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1428 浏览 3 评论
1707 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 00:09 , Processed in 0.930290 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号