代码如下
Dim data() As Byte '串口发送字节
ReDim data(0)
data(0) = &HA
MSComm1.Output = data
为什么我将data(0)=&H(text1.text)就会出错
怎样才能将&H后面改为变量。
vb串口通信发送数据问题
答案:5 悬赏:70 手机版
解决时间 2021-03-24 10:32
- 提问者网友:遮云壑
- 2021-03-23 14:07
最佳答案
- 五星知识达人网友:煞尾
- 2021-03-23 15:17
问题分析: 1) 高位都为0 2) 多了四个字符, 肯定不是一对一转换的问题, 因为循环次数是buffer的长度。所以,buffer长度变长内容错了。
解决方法: mscomm属性inputmode改为binary;
附:VB参考:InputMode 属性确定用 Input 属性读取的数据类型。如果设置 InputMode 为 comInputModeText,Input 属性通过一个 Variant 返回文本数据。如果设置 InputMode 为 comInputModeBinary,Input 属性通过一个 Variant .返回一二进制数据的数组。
解决方法: mscomm属性inputmode改为binary;
附:VB参考:InputMode 属性确定用 Input 属性读取的数据类型。如果设置 InputMode 为 comInputModeText,Input 属性通过一个 Variant 返回文本数据。如果设置 InputMode 为 comInputModeBinary,Input 属性通过一个 Variant .返回一二进制数据的数组。
全部回答
- 1楼网友:空山清雨
- 2021-03-23 17:09
设置mscomm控件属性inputmode = cominputmodebinary
逐字节接收数据放byte数组进行数据处理。通常将接收的byte类型数据逐字节转为16进制数的字符形式,由vb的代码转为10进制数显示。摄氏温度数据可采用16位二进制数表示(16进制为2字节),范围为-32768 到32767间。
vb中用 &hxxxx表示16进制数,例:
text1 = &hffff 文本框内显示其值为-1
text1 = &h12ff 文本框内显示其值为4863
上下位机约定小数位数,数据传送中不传递小数点。
- 2楼网友:摆渡翁
- 2021-03-23 17:03
data(0)=cbyte(text1.text)即可
- 3楼网友:孤独的牧羊人
- 2021-03-23 16:10
2000人的群,名称是VB人生 号148317126,去那里问问
- 4楼网友:天凉才是好个秋
- 2021-03-23 15:25
data(0) = val("&H" & Text1.Text)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯