串口通信数据转换问题
时间:10-02
整理:3721RD
点击:
我的软件需要将labview设置的一个数值发送给下位机。例如数字1发送给下位机,下位机需要接受1字节的16进制数,我将数字1转换为十六进制01,然后发送给下位机。可是下位机收到的是ascii吗3031。我想请问如何才能传递十六进制数给下位机。
下位机收到的ASCII码3031没错,它的十六进制表示形式即是01H,下位机可以识别并认为3031的ASCII码就是它想要的十六进制数值。
现在解决了吗?没有的话,我写个简单的例子给你吧
由于下位机软件不是我编写的,而我所需要做的就是当labview的输入控件是1时我就发送ASCII码01给下位机,当输入控件是10时就发送ASCII码0A给下位机,请问这样该如何实现
还没有解决,由于下位机软件不是我编写的,而我所需要做的就是当labview的输入控件是1时我就发送ASCII码01给下位机,当输入控件是10时就发送ASCII码0A给下位机,请问这样该如何实现
先来学习一下,谢谢小编
猜测你是用的是 数值至16进制字符串转换 函数
要使用 转换为(无符号)单字节整型 函数,即I8 U8
字符串控件或者字符串常量默认是发送所显示字符的ASCII码给下位机,即便你用字符串转换函数将十进制显示为十六进制显示,但其本质上仍为ASCII码。
labview字符串控件可以选择表示方法,你可以右键选择为十六进制,将这个字符串连接到VISA写函数输入端,就可以直接实现向下位机发送十六进制数。