admin 管理员组

文章数量: 887021


2024年2月19日发(作者:古代好听的颜色名字)

在LabVIEW中如何实现十六进制和ASCII之间的转换

主要软件: LabVIEW Development Systems>>LabVIEW Base Package

主要软件版本: 1.0

主要软件修正版本:

次要软件: N/A

问题: 我正在使用LabVIEW与一台仪器进行通讯,它以十六进制的形式返回信息。例如,它不会返回字母"L”,而是返回它对应的十六进制表示"4C”。在LabVIEW中,我该如何编程实现将这个十六进制表示转换为其对应的ASCII表示?如果需要以十六进制等价的形式向仪器发送命令,该如何实现?

解答: 将十六进制转换为ASCII:

为了将一个十六进制的字符串转化为ASCII字符串,您必须首先使用扫描值函数将十六进制字符转化为其对于的十进制表示,您可以在编程»字符串»字符串/数值转换函数选板下面找到这个函数。然后再使用强制类型转换来将该十进制表示转换为它对应的ASCII字符串,您可以在数学»数值»数据操作函数选板下面找到这个函数。

将ASCII转换为十六进制:

为了将一个ASCII字符串转换为十六进制字符串,您必须首先使用强制类型转换函数将ASCII字符串转换为其对应的十进制表示,您可以在数学»数值»数据操作函数选板下面找到这个函数。然后再使用数值至十六进制字符串转换函数将该十进制表示转换为它对应的十六进制字符串,您可以在编程»字符串»字符串/数值转换函数选板下面找到这个函数。

//allkb/436ED7BEF1F9C1EA862575A2003E051F

labview从串口接收字符串,并截取为不同长度数组问题。

浏览次数:171次悬赏分:5 |

离投票结束还有 1

天 7

小时 |

提问者:毅然而立

labview从串口接收字符串,每23字节为一个单位,前3个字节是标识码,如何将23个字符串截取开并且分成16字节+2字节+2字节的3个一维数组?

问题补充:

实际情况是这样的,下位机每隔40ms发送23个字节的数据到串口,其中前三位是固定的数据头,面是16字节的A数据,2字节的B数据,2字节的C数据,我怎么才能把这三种数据分出来呢 ?

积极投票可以增加您的经验值,每票1分,每天上限20分

投票备选答案

共3条

最简单的做法(如果你下位机不会发其它的数据,只会每隔40ms发一次23字节的命令),

那你读取串口的时候,设置读取长度为23字节,然后写个子程序,用以分析这23字节长的字符串,子程序就是用三个截取字符串函数,就可以分离出来了

追问

下位机一开始是要发送几个无用的测试数据的,长度不一定 。

回答

那就一个循环读串口,没次循环读取串口上的所有字节,然后字符串转u8数组,用for循环将u8数组进队列;另外一个循环元素出队列,判断是否为数据头的第一位,若是继续判断下一个元素是否为第二位,。。第三位;如果这位都符合条件,则用for循环再元素出队列20次,这样出来的23个字节就是你要的,后面就一样了,分析这23个字节


本文标签: 字符串 函数 字节 数据