串口传输?
急!如何从COM口传输一串16进制的数值,如FEH、DDH等。 问题点数:20、回复次数:5Top
1 楼windancer(^_^)回复于 2002-05-22 11:20:13 得分 3
用mscomm控件
dim intt as long
mscomm.output=hex(intt)
ok!Top
2 楼dragon_jxl(dragon)回复于 2002-05-22 12:00:22 得分 0
不对,mscomm.Output = Hex(&HFE)得到的是发送46、45两个字节,我要的是发送FEH,应该用什么方法?Top
3 楼rrqx(ya)回复于 2002-05-22 13:01:06 得分 2
用byte数组保存要发送的数据,记得在mscomm中改为二进制发送方式,好象就行了Top
4 楼lid617(梦幻)回复于 2002-05-22 13:06:05 得分 10
发一个过程让你看看:
Dim str1 As String
Dim le As Long
Dim i As Long
Dim chksum1, chksum2 As Byte
Dim send() As Byte
FindMeterNo frmMain.lvDataView, 1, Trim(id)
rsname.MoveFirst
rsname.FindFirst "val(bh )=" & "'" & Val(Trim(id)) & "'"
If Not rsname.NoMatch Then
str1 = Trim(rsname!para1) + Trim(rsname!para2) + Trim(para3)
le = Len(str1)
ReDim send(0 To le + 4)
send(0) = &HAE
send(1) = le + 4
chksum1 = (chksum1 Xor &HAE Xor send(1)) And &HFF
chksum2 = (chksum2 + &HAE + send(1)) And &HFF
For i = 1 To le Step 2
send(i + 2) = Val(Mid(str1, i, 2))
chksum1 = (chksum1 Xor send(i + 2)) And &HFF
chksum1 = (chksum1 + send(i + 2)) And &HFF
Next
send(le + 1) = chksum1
send(le + 2) = chksunm2
frmMain.MSComm1.OutBufferCount = 0
frmMain.MSComm1.Output = send
End IfTop
5 楼plainj(我爱南京)回复于 2002-05-22 13:14:02 得分 5
用byte数组保存,发送的数据,在mscomm中改为二进制发送方式,和接受方式
,
读到后,你想把它转成什么型都可以。
Top




