在STM32F407裸板上运行RS485串口收发都是正确的,可是在RT-thread系统下同样

在STM32F407裸板上运行RS485串口收发都是正确的,可是在RT-thread系统下同样,第1张

在中断关闭期间系统将不再响应任何中断,也就不能响应外部的事件。

所以中断锁对系统的实时性影响非常巨大,当使用不当的时候会导致系统完全无实时性可言(可能导致系统完全偏离要求的时间需求);

而使用得当,则会变成一种快速、高效的同步方式。

再VB中部件里面找到 Microsoft Comm Control 60,然后工具箱里面会出现一个电话图标,画到工程里面就行了,和时间控件很像

剩下的自己去网上找串口通讯的资料吧,最简单最多的是和单片机用RS232串口连接的,百度文库里面就有很多!

问题应该是出在这句:

bytesRead = serialPortRead(BRecieve, 0, bytesToRead);

楼上的说法有点意思,但是不完全透彻。

其实问题在于串口返回数据时,它返回的速度可能不会太快,而程序执行是非常快的。

也就是说,当执行到Read语句时,串口根本没来得及返回那么多的数据,如你说的,只返回了9个字节。即便你指定bytesToRead大小也没有用。

解决办法:只能通过控制代码来实现你想要的功能,我认为有两种方案可供使用:

一、设置一个大小为59的缓存,写一个while循环,只有从串口读满59个字节的数据时才退出while循环,否则继续读取。

二、思想跟第一种类似,只是不写while循环,利用调用函数思想,当存满59个字节时,返回true,否则返回false,继续读取串口数据。

希望对楼主有用。

以上就是关于在STM32F407裸板上运行RS485串口收发都是正确的,可是在RT-thread系统下同样全部的内容,包括:在STM32F407裸板上运行RS485串口收发都是正确的,可是在RT-thread系统下同样、vb新手请教,想做一个串口通讯程序、C# serialport类编写串口通信程序,无法接收全部数据!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10066554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存