关于vb MSComm控件 发送数据的问题

是这样的,我写了一个vb的小程序,有两个textbox,一个Commanbutton,一个MSComm.要实现的功能是向串口发送数据和接收数据.可是我发现我发送的数据居然... 是这样的,我写了一个vb的小程序,有两个textbox,一个Commanbutton,一个MSComm.
要实现的功能是向串口发送数据和接收数据.
可是我发现我发送的数据居然是ASCII的数据.......
例如,我在textbox中键入"1"的时候,按发送按钮,它发送的居然是"1"的ASCll码49......
而且键入"11"的时候,按发送,它居然发送的是"1".
现在我想实现的是在textbox里输入例如是11,按发送按钮的时候,它发送的就是11这个数值,该怎么做?
展开
 我来答
可爱狗狗0060
2014-09-08 · TA获得超过375个赞
知道答主
回答量:181
采纳率:100%
帮助的人:51.3万
展开全部
Option Explicit
Dim CmdFlag As Boolean
Dim sum As Long
Dim sendsum As Long

Private Sub Command1_Click()
If CmdFlag Then
Command1.Caption = "发送"
Timer1.Enabled = False
Else
Command1.Caption = "停止"
Timer1.Enabled = True
End If
CmdFlag = Not CmdFlag
End Sub

Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
Timer1.Interval = 200
Timer1.Enabled = False
sum = 224
Command1.Caption = "发送"
MSComm1.SThreshold = 1
End Sub

Private Sub MSComm1_OnComm()
Dim buffer() As Byte
Dim i As Long
Select Case MSComm1.CommEvent
Case 1
sendsum = sendsum + 1
Debug.Print sendsum
Case 2
buffer = MSComm1.Input
If UBound(buffer) = 3 Then
Text1 = Hex(sum - 1)
Command1_Click
End If
End Select
End Sub

Private Sub Timer1_Timer()
Dim sj(0) As Byte
sj(0) = sum
MSComm1.Output = sj
sum = sum + 1
If sum > 255 Then sum = 224
End Sub

补充:对于串口通信不要设置断点来调试,那测试不准.也不要在代码中使用MSGBOX,它会中断通信.
LZ再看上述已经修改代码,设置
MSComm1.SThreshold = 1
sendsum是产生ComEvSend事件的次数.
追问
非常抱歉,我是新手,可否再加注释,我会继续加分的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2014-09-08 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5494万
展开全部
2000人的群,名称是VB人生 号148317126,去那里问问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式