用vb控制485发送问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:50:07
Private Sub Command1_Click()
MSComm1.Output = CStr(Text1.Text) & "MR" & CStr(Text2.Text) & "#"
Sleep (1)
MSComm1.Output = CStr(Text1.Text) & "MA" & CStr(Text4.Text) & "#"
'Sleep (0.1)
MSComm1.Output = CStr(Text1.Text) & "VE" & CStr(Text6.Text) & "#"
'Sleep (0.1)
MSComm1.Output = CStr(Text1.Text) & "DE" & CStr(Text8.Text) & "#"
'Sleep (0.1)
MSComm1.Output = CStr(Text1.Text) & "AC" & CStr(Text10.Text) & "#"
'Sleep (0.1)’延时函数
MSComm1.Output = CStr(Text1.Text) & "DI" & CStr(Text12.Text) & "#"
以上为vb程序 设置波特率为115200的时候 就不需要加中间的延时 接收正确 如果设为119200则必须要加延时才能接收正确 苦恼 在线等
这是pc用vb发送 下位机使用c8051f40外加485 接收 如果以上的不加延时 下位机老是接收有乱码 加延时后下位机 就可以正常接收

接收时 用 mscomm 控件的 Oncomm 比较 好

不是很明白你到底想实现什么?
如果你两个text1,text2接收输入的话,你直接就不用text4,6,8,10,12了,直接判断text2的内容是多少,如果是115200的话,直接等待延时,如果不是的话,直接接收不就完了!!