VB串口怎样发送大于255的数值

chenyubo1977 2009-08-10 08:43:59
如题,自己写的代码发送小于255的数值都正常,大于255的数值出错,请大家给点帮助,谢谢。
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaboyzyq 2009-08-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As String, L As Integer
Dim iByte() As Byte

a = Hex(256)
L = Len(a)
If L / 2 - L\2 <> 0 Then a = "0" & a
L = Len(a)
ReDim iByte(L / 2 - 1)
Dim i As Integer
For i = 0 To UBound(iByte)
iByte(i) = "&H" & Mid(a, i + 1, 2)
Next

'然后看怎么发这个字节数组,是先发iByte(1)再iByte(0)呢,还是先iByte(0)再发iByte(1),当然是按接收方的数据格式
End Sub
chinaboyzyq 2009-08-10
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As String, L As Integer
Dim iByte() As Byte

a = Hex(256)
L = Len(a)
If L / 2 - L <> 0 Then a = "0" & a
L = Len(a)
ReDim iByte(L / 2 - 1)
Dim i As Integer
For i = 0 To UBound(iByte)
iByte(i) = "&H" & Mid(a, i + 1, 2)
Next

'然后看怎么发这个字节数组,是先发iByte(1)再iByte(0)呢,还是先iByte(0)再发iByte(1),当然是按接收方的数据格式
End Sub
chinaboyzyq 2009-08-10
  • 打赏
  • 举报
回复
先把你要发的数转换成16进制,然后从右向左两位一拆,不够可以补0,例如256转成16进制就是100,你拆成
01 和 00 然后,把01和00转成字节,发送后由接收方再组合,就OK了

如果接收方不是你做的东东,你就要去查一些数据格式是什么样的了,你发送数据的格式要符合接收方的格式,
如BCD码、IEEE754码等,这时你要把拆完了字节数按照接收方的数据格式要求,看先发高位还是先发低位。
chenyubo1977 2009-08-10
  • 打赏
  • 举报
回复
能给个具体点的例子吗
chinaboyzyq 2009-08-10
  • 打赏
  • 举报
回复
可以拆成2字节发送,然后再组合

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧