A&=~B可以写成A=A&(~B),这个是C语言知识,都很简单。
在嵌入式中,为了避免影响到其他的寄存器位,常用 &=~ 对寄存器进行清零,用| = 对寄存器进行置位。
举例说明:
寄存器A=1011_1001,将寄存器的第4位和第6位进行清零,可以进行下面操作。
A &=~ 0x28=1011_1001 & 1101_0111=1001_0001
或
A &=~ ((1<<3)|(1<<5))
这样就实现了对寄存器的第4位和第6位进行清零。
用 | = 置位原理相同,这里就不举例说明了。
根本原理还是
一个数与0相与得零,即X&0=0
一个数与1相或得一,即X|1=1

283

被折叠的 条评论
为什么被折叠?



