运营商“|”用法是c raspberry pi

时间:2016-01-18 18:20:08

标签: c raspberry-pi i2c

我正在使用覆盆子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);
}

1 个答案:

答案 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

整个函数调用背后的逻辑应该由你没有提供的上下文决定。