由于通迅速率为非标准速率,故用API实现异步通讯.
PC机发送指令XXAA(XX:为指令位,AA为单片机地址位)到单片机,单片机回送53字节信息.但由于延时关系,PC机每次都只能接收到单片机回送数据的一部分.后来改用了多次接收(一次收不完多收几次)还是不行,接收到的内容和实际回送的内容不一样.请问各路英雄如何解决这个问题?
另:如果是总线型结构将多个单片机连在一起,周期性的轮询每个单片机那又该注意些什么?
小弟在此先谢过了!
PC机发送指令XXAA(XX:为指令位,AA为单片机地址位)到单片机,单片机回送53字节信息.但由于延时关系,PC机每次都只能接收到单片机回送数据的一部分.后来改用了多次接收(一次收不完多收几次)还是不行,接收到的内容和实际回送的内容不一样.请问各路英雄如何解决这个问题?
另:如果是总线型结构将多个单片机连在一起,周期性的轮询每个单片机那又该注意些什么?
小弟在此先谢过了!
Private WithEvents MSComm1 As clsMSCommPrivate Sub Form_Load()
'//创建一个MSComm1
Set MSComm1 = New clsMSComm
'//设置存放Comm的容器和名字
MSComm1.MSCommCreat Me, "Commx"
'// 打开串口 串口号,非标准波特率,检验,数据位,停止位
MSComm1.funOpenCommPort "COM1", 1234, None, 8, 1
End SubPrivate Sub MSComm1_OnCommEvent(InputData As Variant)
'接收一字节进入OnComm事件,可以自己设置.在此编写处理代码
End Sub不知道是不是你想要的.在OnComm事件里处理数据就不会出现丢数据和省去查询的麻烦了.