这是一个赋值语句,把等式右边的值赋给左边;
先来看左边是怎么运算的,
由于移位运算符<<的优先级大于位运算符|,所以先计算BUF[1]左移八位,然后再或上BUF[2],
或的操作可以理解为两个数相加;通俗理解的话可以举个列子,
假设BUF[1]的值为0000 0001b(为方便描述,故用二进制表示) ,左移八位后变成10000 0000b ,BUF[2]的值为1 ,然后两者相加变为10000 0001 b
这是算术优先级的问题吧。这两个都是双目运算符,而移位运算符的优先级是大于位运算符的,所以你只要先将BUF[1]<<8,然后结果或上BUF[2]
数据拆包发送后又合成吗/, 串口通信一般就是8位, 想发送个16位的数据就需要拆包,高八位 第八位装在两个8位的变量里。接收到之后再进行合成。 你的代码就是将BUF[1]中的数作为高位,BUF[2]中的数作为低位 ,合成的位数放进YRR[0]