设 GPIO 为一个 8 位寄存器,其值为:
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
---|
①现要将它的第 3 位(从右开始,第 0 位起始),置为 1 ,并保持其他位不变。
GPIO |= (1<<3); //置 GPIO_3 为 1
原理是 1 左移3位,再或上 GPIO,并不会改变其他位的值。
②现要将它的第 2 位,置为 0,并保持其他位不变。
GPIO &= ~(1<<2); //置 GPIO_2 为 0
原理是先将 1 左移 2 位,再进行取反,最后再与上 GPIO,并不会改变其他位的值。