
这需要先看看单片机是怎么处理后发出来的。如果是把这3位16进制数每一位已经转成了ASCII表示(编码了,比如0x1AC转成了字符串“1AC”),那么这12bits就不是15bytes,而是3bytes了。这种情况用“%3x”扫描字符串就行了。
15字节还是3字节,像这样的情况,我在一个台湾的PLC的手册里(不点名了,免得麻烦)就看到过他们写乱了。也就是说他们有时候说的“字节”不是串口或网络收到的“字节”,而是PLC寄存器里面的字节。比如某寄存器里面数值是0x3A,发送的时候就不是这一个字节了,而是ASCII编码后的字符串“3A”,这样就是两个字节了。
前面是ASCII模式,便于查看。还有一种就是二进制模式,便于处理,也节省资源。
就是把数组、结构体之类的强制类型转换成字符串发回来,接收后根据类型再强制转回去就行了。
即使是用二进制模式,也很可能是用两个字节表示的12位,最高4位全0,这样把收到的字符串强制转成U16数组就行了(或者用“从平化字符串还原”,能设置字节序选项和是否包含数组或字符串大小选项)。
如果真是12位12位的拼成了8位的整数倍发过来,那就乖乖的移位吧,如图。
在 LabVIEW 中,如果使用截取字符串的函数(如 String Subset 或 String Index Array)没有输出结果,可能有以下几种可能性:
输入参数有误:请检查输入参数是否正确。确保输入的字符串和索引值(或子字符串的起始位置和结束位置)是正确的。
输出参数没有被正确初始化:在使用截取字符串函数之前,需要确保输出参数已经被正确地初始化。如果输出参数没有初始化,函数将无法将结果写入输出参数中。
索引值超出范围:请确保索引值不超过字符串的长度范围。如果索引值超过字符串长度的范围,则会出现错误。
函数未被正确调用:请确保函数被正确地调用。如果函数没有被正确地调用,将无法得到预期的结果。
程序中存在其他错误:如果程序中存在其他错误,可能会导致截取字符串函数无法输出结果。请检查程序中的其他部分,找出可能导致问题的原因。
如果以上方法都无法解决问题,您可以尝试使用其他截取字符串函数或调试程序以解决问题。
用“读取JPEG文件 VI”、“绘制平化像素图 VI”,得到的数据再用“至像素图转换 VI”(这里就可以指定图形区域的左 、上、右、下的坐标值来只截取一部分)、“绘制平化像素图 VI”,获得的新即可以显示到控件,也可以用“写入JPEG文件”之类的保存到文件里
以上就是关于labview 字符串截取,如何截取1.5个字节全部的内容,包括:labview 字符串截取,如何截取1.5个字节、labview使用截取字符串函数但没有输出结果、LabVIEW中如何截取图像中指定区域中的图像等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)