如何发送十六进制的变量 点击:587 | 回复:4



夜凉如水

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 0回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2003年12月24日
发表于:2004-01-10 23:23:00
楼主
一般的程序是这样发送的 a(0) = 2 a(1) = &H24 a(2) = &H31 a(3) = &H2D a(4) = 3 MSComm1.Output = a 但是我现在a(2)的值是一个变量,n或者2n,直接写a(2)=n的话,测出来发出的数据就不对了。 试过a(2)=&H+n,a(2)=text1.text+n都不对,我该怎么写?谢谢指教!



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-01-09 17:53:00
1楼
a(2) = CByte(n) Make sure your n is 0 ~ 255. Visual Basic 与RS-232串行通信控制 Visual Basic 与分布式监控系统 http://www.icpdas.com.cn/products/books/book_c.htm

小丫头

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 11回
  • 年度积分:0
  • 历史总积分:79
  • 注册:2003年10月23日
发表于:2004-01-09 22:31:00
2楼
没用的,比如我的n设为31,发送a(2) = CByte(n),结果发送的是1F,而我需要的是&H31,而如果a(2) = CByte(Hex(n)),则显示类型不匹配.

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-01-10 10:54:00
3楼
a(2)= CByte(Val("&h" & Hex(n)))

小丫头

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 11回
  • 年度积分:0
  • 历史总积分:79
  • 注册:2003年10月23日
发表于:2004-01-10 23:23:00
4楼
终于调好了,是a(2) = CByte(Val("&H" & n )). 谢谢GaryLin!

热门招聘
相关主题

官方公众号

智造工程师