永发信息网

vb串口通信发送数据问题

答案:5  悬赏:70  手机版
解决时间 2021-03-24 10:32
  • 提问者网友:遮云壑
  • 2021-03-23 14:07
代码如下
Dim data() As Byte '串口发送字节
ReDim data(0)
data(0) = &HA
MSComm1.Output = data
为什么我将data(0)=&H(text1.text)就会出错
怎样才能将&H后面改为变量。
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-03-23 15:17
问题分析: 1) 高位都为0 2) 多了四个字符, 肯定不是一对一转换的问题, 因为循环次数是buffer的长度。所以,buffer长度变长内容错了。
解决方法: 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)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯