STM32 如何给一个寄存器某一位 置0 或 置1, (C语言基础)

一、置0

例如:将temp寄存器的第6位 置0:   temp &=   ~(1<<6) 

将temp的第6位 置0的 C指令:

temp &=   ~(1<<6)                  //  左移6位然后按位取反,然后与temp按位"&"运算。如下图:

命令分解:

(1). MCU先在内部寄存器中开辟一个1byte的临时空间(为了方便表述假定1个字节,实际上stm32是32位的),先做 ~(1<<6) 如图:

(2). 然后将取反后的临时值跟temp做按位 “&” 运算, 如图:

二、置1

例如:将temp寄存器第6位 置1, temp !=  (1<<6) 

(1).

--------  未完待续 ---------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值