vb MScom控件接收不到数据
程序如下
Private Sub comLED_OnComm()
Select Case Me.comLED.CommEvent
Case comEvReceive
Dim Buffer As Variant
comLED.InputLen = 0
'接收二进制数据
comLED.InputMode = comInputModeBinary
Buffer = comLED.Input
Label11.Caption = Buffer
Case Else
End Select
End Sub
计算机接收不到任何数据,为什么??
[解决办法]
你在OnComm事件里面宣告定义那些东东, 进来的资料都被你自己干掉了
Dim Buffer As Variant
comLED.InputLen = 0
接收二进制数据
comLED.InputMode = comInputModeBinary
把这些宣告移到 Form_Load或其它地方吧
[解决办法]
Private Sub comLED_OnComm() Dim Buffer() As Byte '2进制接收 Dim i As Long Select Case Me.comLED.CommEvent Case comEvReceive comLED.InputMode = comInputModeBinary comLED.InputLen = 0 '接收二进制数据 Buffer = comLED.Input For i = 0 To UBound(Buffer) Label11.Caption = Label11.Caption & Right("0" & Hex(Buffer(i)), 2) Next Case Else End SelectEnd SubPrivate Sub Form_Load() comLED.Settings = "9600,n,8,1" comLED.CommPort = 1 comLED.RThreshold = 1 '产生OnComm事件的必要条件 comLED.PortOpen = True Label11.Caption = ""End Sub
[解决办法]
楼主首先排除一下你的硬件的设置和连线问题,再确认了前者无误的情况下再来调试软件,参考一下这个,一个VB编写的串口调试器,很实用:
http://http://download.csdn.net/source/1262066
你可以参考着写程序
[解决办法]
Option Explicit Dim Buffer As StringPrivate Sub comLED_OnComm() Dim i As Long Select Case Me.comLED.CommEvent Case comEvReceive comLED.InputLen = 0 Buffer = Buffer & comLED.Input Label11.Caption = Buffer End SelectEnd SubPrivate Sub Form_Load() comLED.Settings = "9600,n,8,1" comLED.CommPort = 1 comLED.InputMode = comInputModeText comLED.RThreshold = 1 '产生OnComm事件的必要条件 comLED.PortOpen = True Label11.Caption = ""End Sub
[解决办法]
楼主的代码本身就是错误的
Buffer必须是一个Byte类型,Byte类型怎么又能作为String类型来显示?