求助VB中串口通讯问题.

来源:百度知道 编辑:UC知道 时间:2024/04/28 01:31:18
PC需要发送的是 @21173↓
其中↓是结束符,@21173为ASCII码,"↓"=0X0D
我写的是这样的

Private Sub Command2_Click()
If MSComm1.PortOpen Then
MSComm1.Output = "@21173" + Chr(13)
End If
End Sub

Private Sub Form_Load()
MSComm1.Settings = "19200,e,8,1"
MSComm1.CommPort = 1
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.SThreshold = 0
MSComm1.RThreshold = 0
MSComm1.PortOpen = True
End Sub

但是PLC接收到的是@21173而不是@21173回车,用调试助手测试的话就没问题,请问问题出在哪里?能解决的留一下联系方式QQ之类,解决后加分。
我的QQ:498375
......去匹配字符串讲/n....你开我玩笑不要这样开额....

加trim()就行来了

VB中"+"运算符有加法运算含义和字符串连接含义。但是为了消除多义性,应该改用 & 运算符。你的问题出在多意义性。
"@"在VB里就像"&h"类似的含义,表示强制转换Decimal类型。所以你的表达式"@21173" + Chr(13),编译系统应该理解成了算术运算。
你可以修改为"@21173" & vbCr
注意字符串运算尽量使用"&"符号,某些非显示字符有常量定义。如chr(13)=vbCr

1. + Chr(13) 换 & Chr(13) 试试
2. + Chr(13) 换 & Chr(10) 试试
2. + Chr(13) 换 vbNewLine 试试
串口通讯做的少。呵呵。试试吧。

是否应该讲你的回车car(13)换一个字符比如说
MSComm1.Output = "@21173" + "\n"

你得到的肯定就是 @21173 和\n了..你在去匹配字符串讲\n在转变成Chr(13)就好了

我默默无闻的拿走我的` 2分!````````````````````````````````````````

Chr(13)+Chr(10)
不行,你换一个,比如esc字符或者back字符可以不?