LabVIEW字符串正常显示与十六进制显示相互强制转换(转自 https://blog.csdn.net/kyletan/article/details/7584694)

/*

8.1日更新

如何区分各个十六进制显示的帧,比如以7E开头7E结尾的帧,要能做到分别解析。

*/

在串口通信中,由于实际上传输的是ASCII码,但是一般字符串控件显示出来的并不是其对应的ASCII码,关于字符串正常显示和十六进制显示,LabVIEW帮助文档里面是这么写的:

正常显示---------可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。 

十六进制显示---每个字符显示为其十六进制的ASCII值,字符本身并不显示。

比方说对于01这个字符串,如果是正常显示情况下输入01,下位机接收的是其对应的ASCII码而不是01本身;如果是十六进制显示情况下输入01,下位机接收的是十六进制的01。上位机接收下位机发送的字符串同样是ASCII码,一般情况下如果不加转换,在正常显示情况下是乱码,在使用LabVIEW在编程处理直接处理这些字符串的时候,就会出现问题了。于是很多时候需要对字符串正常显示和十六进制显示做一个强制转换,以方便处理。

正常显示至十六进制显示强制转换,一般用于VISA Write:

需要注意的是,在输入端Normal Display String输入的时候要确保字符是以两位的格式输入,比如需要输入1,格式要为01,否则会出错。

扫描二维码关注公众号,回复: 2768141 查看本文章

十六进制显示至正常显示强制转换,一般用于VISA Read:

经过这样的强制转换之后再进行处理就很方便了。

猜你喜欢

转载自blog.csdn.net/wofreeo/article/details/81330153