我正在使用覆盆子pi来读取陀螺仪数据。我是新手,但到目前为止,我理解除了使用“|”之外我所依据的所有代码。在里面。 在查找时,它会说它是“按位OR”运算符,但在我的情况下它没有意义,而不是我不理解维基百科上的解释。
使用它的行如下所示
readBlock(0x80 | OUT_X_L_G, sizeof(block), block);
readBlock是用户定义的函数,如下所示。
readBlock(uint8_t command, uint8_t size, uint8_t *data) {
int result = i2c_smbus_read_i2c_block_data(file, command, size, data);
}
答案 0 :(得分:1)
表达式0x80 | OUT_X_L_G
返回的值为OUT_X_L_G
,位号为7
:
OUT_X_L_G = xxxx xxxx
bitwise or
0x80 = 1000 0000
---------------------
result = 1xxx xxxx
整个函数调用背后的逻辑应该由你没有提供的上下文决定。