ADC1->CR2&=~(7<<17)

2019-07-21 04:21发布

在STM32中对寄存器进行操作时,有的需要有的不需要,不知道什么时候要,什么时候不要,例如下面对ADC控制寄存器2操作的三句中
ADC1->CR2&=~(7<<17);
ADC1->CR2|=7<<17;
ADC1->CR2|=1<<20;
为什么19:17操作时要清空再写,而对第20位时直接就可以向其写1,而不用先清空?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
xuande
1楼-- · 2019-07-21 06:12
 精彩回答 2  元偷偷看……
lycreturn
2楼-- · 2019-07-21 06:52
位19:17    原来设置为 111   现在需要设置为100  那么加入和不加入 ADC1->CR2&=~(7<<17);  对 ADC1->CR2|=7<<17;的结果是不是一样的?
对于位20   想要置1    无论原来什么状态    经过ADC1->CR2|=1<<20;运算   结果都是1  因为它只有1位

一周热门 更多>