在Arduino中设置/清除数字的特定位


当您深入研究高级固件时,会处理许多寄存器,其特定位需要根据您的用例进行设置或清除。Arduino 有内置函数可以做到这一点。

语法

bitSet(x, index)

和,

bitClear(x, index)

其中 x 是需要设置/清除其位的数字,index 是位的位 置(0 表示最低有效位或最右边的位)。此函数就地更改数字 x,并返回 x 的更新值。

请注意,设置一位表示将其值设置为 1,清除一位表示将其值设置为 0。

示例

以下示例说明了这些函数的使用:

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();
   int x = 6;

   Serial.println(x);
   bitSet(x,0);
   Serial.println(x);
   bitClear(x,2);
   Serial.println(x);
   bitClear(x,3);
   Serial.println(x);
}

void loop() {
   // put your main code here, to run repeatedly:
}

输出

串口监视器输出如下所示:

如您所见,我们从数字 6 (0b0110) 开始。

然后我们设置其第 0 位,得到 (0b0111),对应于 7。

然后,我们清除其第 2 位,得到 (0b0011),对应于 3。

然后我们清除其第 3 位,该位已经为 0。因此,我们再次得到 (0b0011),对应于 3。

串口监视器输出按我们刚才描述的精确顺序显示这些数字。

更新于:2021年5月31日

1K+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.