VB 串口通讯和Byte转换的问题;

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:52:31
是用VB和单片机通信的软件;

我知道使用MSComm1.Output发送数据还有MSComm1.Input接收数据

现在有几个小问题:

MSComm1.Input的返回值是个啥?MSDN语焉不详,看不大明白.(貌似返回值是个Byte?)
这个返回值怎么转化成Int?

另外,我的程序假如是这样:单片机不停的向串口发送数据:格式都是8位:

起始字符→高8位→低八位→起始字符
我如何在程序里不停的获取高八位+低八位,然后通过某种计算之后赋值给Label?
好,现在是这样:我定义 Dim bt(1) As Byte
bt(1)=&HCC
MSComm1.Output = bt
完全没问题,数据能发过去;

但是我让MSComm1.Output = &HCC 却不行,说 无效属性值
=CByte(128)也不行,同样是无效属性值
请问该怎么解决呢,难道只能用Bytes数组了?

Input 属性
返回并删除接收缓冲区中的数据流。该属性在设计时无效,在运行时为只读。
InputLen 属性确定被 Input 属性读取的字符数。设置 InputLen 为 0,则 Input 属性读取缓冲区中全部的内容。
InputMode 属性确定用 Input 属性读取的数据类型。如果设置 InputMode 为 comInputModeText,Input 属性通过一个 Variant 返回文本数据。如果设置 InputMode 为 comInputModeBinary,Input 属性通过一个 Variant .返回一二进制数据的数组。
数据类型
Variant
Option Explicit
Dim strHex As String
Dim intSj() As Integer
Private Sub Form_Load()
'MSComm1初始化
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,2"
MSComm1.InputMode = comInputModeBinary '2进制接收
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim inbuff() As Byte
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive
inbuff = MSComm1.Input
For i = 0 To UBound(inbuff) '转换为16进制字符
strHex = strHex & Right("0" &