这需要先看看单片机是怎么处理后发出来的。如果是把这3位16进制数每一位已经转成了ASCII表示(编码了,比如0x1AC转成了字符串“1AC”),那么这12bits就不是15bytes,而是3bytes了。这种情况用“%3x”扫描字符串就行了。
15字节还是3字节,像这样的情况,我在一个台湾的PLC的手册里(不点名了,免得麻烦)就看到过他们写乱了。也就是说他们有时候说的“字节”不是串口或网络收到的“字节”,而是PLC寄存器里面的字节。比如某寄存器里面数值是0x3A,发送的时候就不是这一个字节了,而是ASCII编码后的字符串“3A”,这样就是两个字节了。
前面是ASCII模式,便于查看。还有一种就是二进制模式,便于处理,也节省资源。
就是把数组、结构体之类的强制类型转换成字符串发回来,接收后根据类型再强制转回去就行了。
即使是用二进制模式,也很可能是用两个字节表示的12位,最高4位全0,这样把收到的字符串强制转成U16数组就行了(或者用“从平化字符串还原”,能设置字节序选项和是否包含数组或字符串大小选项)。
如果真是12位12位的拼成了8位的整数倍发过来,那就乖乖的移位吧,如图。
在Excel中使用比较长的字符串时,可能会遇到需要提取其中某一部分字符串的情况,这时就要用到截取字符串函数了,当然,截取字符串函数有很多本文主要讲述了其中的一个函数—— RIGHTB函数 。它的作用是从字符串的最右边开始,截取特定字节数的字符。
RIGHTB函数功能
从最右边起提取指定字节数的字符
RIGHTB函数语法
翻译白话格式:
参数说明
Text:是包含要提取字符的文本字符串
Num_bytes指定要由LEFT所提取的字符数必须大于或等于0
注意事项:
1Num_bytes 按字节指定要由RIGHTB所提取的字符数
RIGHTB函数使用方法实例
示例1: 经典用法
你学会了吗?
谢谢大家的观看,我们下一期再见,如果有什么问题欢迎评论区留言或私信我们
想学习更多的函数知识,欢迎关注转发
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)