Dim STX
Dim ETX
Dim HOUSE(16)
Dim UNIT(16)
Dim FUN(7)
Dim LENGTH(3)
Private Sub Form_Load()
Call init
'MSComm1.PortOpen = False
Combo1.Clear
Combo2.Clear
Dim a
'Count = 0
For i = 65 To 81
a = Chr(i)
Combo1.AddItem (a)
Next
For i = 49 To 65
a = Chr(i)
Combo2.AddItem (a)
Next
MSComm1.CommPort = 1
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End SubPrivate Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Text1.Text = "正在接受数据"
Case comEvSend
Text1.Text = "正在发送数据个数" & MSComm1.OutBufferCount
'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理
'List1.AddItem "发送缓冲区有数据"
End Select
End SubPrivate Sub open_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Label3.Caption = Combo1.ListIndex
Label4.Caption = Combo2.ListIndex
If Combo1.ListIndex >= 0 And Combo2.ListIndex >= 0 Then
MSComm1.Output = STX & LENGTH(0) & HOUSE(Combo1.ListIndex) & UNIT(Combo2.ListIndex) & FUN(0) & ETX
MsgBox (STX & LENGTH(0) & HOUSE(Combo1.ListIndex) & UNIT(Combo2.ListIndex) & FUN(0) & ETX)
Else
MsgBox ("请选择房间号和单元号")
End If
End SubPrivate Sub init()
STX = "00000010"
ETX = "00000011"
HOUSE(0) = "01100100" 'a
HOUSE(1) = "11100100" 'b
HOUSE(2) = "00100100" 'c
HOUSE(3) = "10100100" 'd
HOUSE(4) = "00010100" 'e
HOUSE(5) = "10010100" 'f
HOUSE(6) = "01010100" 'g
HOUSE(7) = "11010100" 'h
HOUSE(8) = "01110100" 'i
HOUSE(9) = "11110100" 'j
HOUSE(10) = "00110100" 'k
HOUSE(11) = "10110100" 'l
HOUSE(12) = "00000100" 'm
HOUSE(13) = "10000100" 'n
HOUSE(14) = "01000100" 'o
HOUSE(15) = "11000100" 'p
UNIT(0) = "01100000" '1 unin
UNIT(1) = "11100000" '2
UNIT(2) = "00100000" '3
UNIT(3) = "10100000" '4
UNIT(4) = "00010000" '5
UNIT(5) = "10010000" '6
UNIT(6) = "01010000" '7
UNIT(7) = "11010000" '8
UNIT(8) = "01110000" '9
UNIT(9) = "11110000" '10
UNIT(10) = "00110000" '11
UNIT(11) = "10110000" '12
UNIT(12) = "00000000" '13
UNIT(13) = "10000000" '14
UNIT(14) = "01000000" '15
UNIT(15) = "11000000" '16
FUN(0) = "00101000" 'ON
FUN(1) = "00111000" 'off
FUN(2) = "01001000" 'dim
FUN(3) = "01011000" 'reight
FUN(4) = "00011000" 'ALL LIGHTS ON
FUN(5) = "00001000" 'all unin on
FUN(6) = "01101000" 'all lights off
LENGTH(0) = "00000011" '3
LENGTH(1) = "00000010" '2
LENGTH(2) = "00000001" '1
End Sub
这个是程序
我是想问一下 为什么我的消息没有发出去啊 ???因为 Text1.Text没有显示 正在发送数据
MSComm1.OutBufferCount
是不是mscomm.portopen = true
MSComm1.Output="111111"
计算机是不是会自动发数据到串行口的啊 ???
还是要mscomm1.input来接受的啊???
Dim ETX
Dim HOUSE(16)
Dim UNIT(16)
Dim FUN(7)
Dim LENGTH(3)
Private Sub Form_Load()
Call init
'MSComm1.PortOpen = False
Combo1.Clear
Combo2.Clear
Dim a
'Count = 0
For i = 65 To 81
a = Chr(i)
Combo1.AddItem (a)
Next
For i = 49 To 65
a = Chr(i)
Combo2.AddItem (a)
Next
MSComm1.CommPort = 1
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End SubPrivate Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Text1.Text = "正在接受数据"
Case comEvSend
Text1.Text = "正在发送数据个数" & MSComm1.OutBufferCount
'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理
'List1.AddItem "发送缓冲区有数据"
End Select
End SubPrivate Sub open_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
Label3.Caption = Combo1.ListIndex
Label4.Caption = Combo2.ListIndex
If Combo1.ListIndex >= 0 And Combo2.ListIndex >= 0 Then
MSComm1.Output = STX & LENGTH(0) & HOUSE(Combo1.ListIndex) & UNIT(Combo2.ListIndex) & FUN(0) & ETX
MsgBox (STX & LENGTH(0) & HOUSE(Combo1.ListIndex) & UNIT(Combo2.ListIndex) & FUN(0) & ETX)
Else
MsgBox ("请选择房间号和单元号")
End If
End SubPrivate Sub init()
STX = "00000010"
ETX = "00000011"
HOUSE(0) = "01100100" 'a
HOUSE(1) = "11100100" 'b
HOUSE(2) = "00100100" 'c
HOUSE(3) = "10100100" 'd
HOUSE(4) = "00010100" 'e
HOUSE(5) = "10010100" 'f
HOUSE(6) = "01010100" 'g
HOUSE(7) = "11010100" 'h
HOUSE(8) = "01110100" 'i
HOUSE(9) = "11110100" 'j
HOUSE(10) = "00110100" 'k
HOUSE(11) = "10110100" 'l
HOUSE(12) = "00000100" 'm
HOUSE(13) = "10000100" 'n
HOUSE(14) = "01000100" 'o
HOUSE(15) = "11000100" 'p
UNIT(0) = "01100000" '1 unin
UNIT(1) = "11100000" '2
UNIT(2) = "00100000" '3
UNIT(3) = "10100000" '4
UNIT(4) = "00010000" '5
UNIT(5) = "10010000" '6
UNIT(6) = "01010000" '7
UNIT(7) = "11010000" '8
UNIT(8) = "01110000" '9
UNIT(9) = "11110000" '10
UNIT(10) = "00110000" '11
UNIT(11) = "10110000" '12
UNIT(12) = "00000000" '13
UNIT(13) = "10000000" '14
UNIT(14) = "01000000" '15
UNIT(15) = "11000000" '16
FUN(0) = "00101000" 'ON
FUN(1) = "00111000" 'off
FUN(2) = "01001000" 'dim
FUN(3) = "01011000" 'reight
FUN(4) = "00011000" 'ALL LIGHTS ON
FUN(5) = "00001000" 'all unin on
FUN(6) = "01101000" 'all lights off
LENGTH(0) = "00000011" '3
LENGTH(1) = "00000010" '2
LENGTH(2) = "00000001" '1
End Sub
这个是程序
我是想问一下 为什么我的消息没有发出去啊 ???因为 Text1.Text没有显示 正在发送数据
MSComm1.OutBufferCount
是不是mscomm.portopen = true
MSComm1.Output="111111"
计算机是不是会自动发数据到串行口的啊 ???
还是要mscomm1.input来接受的啊???
解决方案 »
- VB中Timer控件如何实现1小时触发一次代码?
- 混到一个角,自娱自乐一下,散分
- vbscript讀取文本文檔內容
- 请教:我初始窗体最大化后toolbar1在窗体的最下面,但在任务栏的上面,最小化后,再最大化toolbar1就看不见了,如何解决?
- 各位大虾帮一下小人,(在VB中怎么样设置程睡眠)
- 为什么卸载窗体后主窗体得不到焦点
- 当我删除一条数据时,出现这个错是什么意思?
- 一个数据库编程的问题,应该怎样使用ADO效率更高,请帮忙看一下。
- 请问,行 :控件 list1 的类 RichTextLib.RichTextBox 不是一个已加载的控件类
- 高手的眼球请到这里来:80分超值大奉送
- 如何区别一个gif文件是动画还是静止画?
- 高手请进!!!!
MSComm1.SThreshold = 4 (大于 0 小于等于实际发送的字节数就可以)若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。实际上数据已经发送了。