对寄存器中的某一位进行操作
如果是封装到具体功能Bit以及bit组的代码工程,可以直接进行赋值。封装代码的方式可以参看这个链接 嵌入式中的C:联合体 union以及一般使用方式
如果是整个寄存器呢
比如stm32寄存器映射的时候标准库是这么处理的


(unsigned int)(0x4002 0410) = 0xFFFF;
对整个寄存器进行赋值。
但是如果只想操作其中的1位或者几位,可以使用移位操作。
清零
将第7位清0
a = (a & ~(1<<7));
a &= ~(1<<7);
置位
a = (a | 1<<7);
a |= 1<<7;
读位
a = 0xA0;
b = ( a&(1<<7) ) >> 7;
文章介绍了如何在STM32寄存器中进行位操作,包括使用位掩码和移位操作来清零、置位某个特定位,以及如何读取位的状态。示例代码展示了对寄存器的高效操作方法。
9842

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



