关于VB利用MSComm控件实现串口通信问题
最近想写一个利用VB中的MSComm控件实现串口通信,现在遇到一个问题:
由于才接触VB,所以请大家不要见笑。目前我的写法是这样的发送:MSComm1.Output = Text2.Text,接收:Text1.Text = MSComm1.Input,现在的情况就是当Text2.text中是多个文本时,接收就不能完全接收,使用的是OnComm事件,我知道这种方法根本就不可行,但没想出好的方法,请大家说说思路,不想要例程代码,只想听听大家的思路!
谢谢! VB 串口通信
[解决办法]
你要知道,下位机发串口信息过来是一个字节一个字节发过来的,当然,对于真正的接收数据,也是一个字节一个字节的收到的,而不是一下就能收到“一组”所谓“完整”的数据,而操作系统因为要处理的事务多,没必要每接收一个字节就让用户去处理,所以提供了个缓冲区的概念,当连续通讯存在少许间隔时间时或接收数据达到缓冲区大小时,MSComm 控件便产生 OnComm 事件让用户去处理,所以你在 OnComm 事件产生的过程中读到的数据未必就是你所应该收到的全部数据,为了确保接收信息的完整性,采用多次接收来保证一组数据的所谓“完整性”的做法是必要的,至于这种多次接收的具体思路以及处理方式,CSDN中有很多这种案例和讲解,甚至还有大量的源码及说明,单我个人来看,以前也发过一些相关的过程或范例,有C/C++、VB、单片机的都有发过,你可以搜索一下。