VB串口通信,提示无效的属性值
来源:百度知道 编辑:UC知道 时间:2024/05/07 10:38:49
我现在要用VB完成单片机和电脑的通讯,单片机编写的内部程序的功能是通过uart接受外部数据,然后接收后原封不动的再把数据传回到电脑。电脑通过VB编写的程序中的文本框显示出来。单片机程序我用串口调试助手调试过,一点问题也没有,完全可以实现功能。下面是我VB程序:
Private Sub Mscomm1_Oncomm()
'...通讯事件发生
Dim indata As Variant
Dim bte(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进
'...制Byte类型的变量进行转换!
bte(0) = AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...发送数据
Dim Num As Integer
Dim outbte(0) As Byte
Num = Val(Text1.Text)
outbte(0) = CByte(Num)
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = outbte(0) '...发送数据
End Sub
Private Sub Command
Private Sub Mscomm1_Oncomm()
'...通讯事件发生
Dim indata As Variant
Dim bte(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
indata = MSComm1.Input
'...注意!要通过MSComm控件发送或接收二进制数据必须用Variant类型的变量对二进
'...制Byte类型的变量进行转换!
bte(0) = AscB(indata)
Text2.Text = bte(0)
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select
End Sub
Private Sub Command1_Click()
'...发送数据
Dim Num As Integer
Dim outbte(0) As Byte
Num = Val(Text1.Text)
outbte(0) = CByte(Num)
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output = outbte(0) '...发送数据
End Sub
Private Sub Command
朋友,你改
MSComm1.Output = outbte(0) '...发送数据
为
MSComm1.Output = outbte '...发送数据
另外,你接收不到数据,要在 Form_Load() 加
MSComm1.RThreshold = 1
这样 就行了
试试,我 试过,发送没有问题
祝你顺利