VB与单片机串口通讯中收发数组byte溢出的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/19 11:46:03
我要将文件中的数据分行赋值给一维数组,并且将这个数组传送给下位机,要传送数组就需要把数组定义为BYTE类型,但是BYTE类型的取值范围为0~255,如果数组中的元素大于255,产生溢出怎么办?请高手解决,谢谢~~

大于255就用多字节传输。
比如,
整数可以用双字节(WORD)或者四字节(DWORD)传输;
实数可以用IEEE32四字节(REAL)标准传输;
不一定非得用Byte类型的。

这个是VB IEEE32转换实例,都是用CopyMemory的API.
'定义API
Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
'定义实数转16进制函数
Private Function FloatToBytes(value As Single) As Byte()
Dim returnByte(4) As Byte
Dim sPtr As Long, bPtr As Long
sPtr = VarPtr(value)
bPtr = VarPtr(returnByte(1))
CopyMemory bPtr, sPtr, 4
FloatToBytes = returnByte
End Function
'定义16进制转实数函数
Private Function BytesToFloat(bytes() As Byte) As Single
Dim returnValue As Single
Dim sPtr As Long, bPtr As Long
sPtr = VarPtr(returnValue)
bPtr = VarPtr(bytes(1))
CopyMemory sPtr, ByVal bPtr, 4
BytesToFloat = returnValue
End Function

P