STM32学习笔记(一)----基本位操作

1)不改变其他位的值的状态下,对某几位进行设置初始值

这个场景,单片机开发中经常使用,方法就是先对需要设置的位用&符号进行清零操作,然后用|操作符设定数值,比如我们经常改变GPIO的状态,可以先对寄存器的值进行清零操作 

GPIOA ->CRL &= 0xFFFF FF0F;  //将第4-7位清零

GPIOA ->CRL &= 0x0000 0040; //设置相应位的值,不改变其他位置的数值


2)移位操作提高代码的可读性

移位操作在单片机开发中非常重要,固件库中GPIO初始化的函数里面有一行代码

GPIOx -> BSRR = (((uint 32_t)0x01)<<pinpos); //

这个操作就是将BSRR寄存器的第pinpos位置设为1,为什么要通过左移而不是直接设定一个固定的值呢?其实这是为了提高代码的可读性以及可重用性。这行代码可以很直观明了的知道,是将第pinpos位设置为1,如果写成  BPIOx -> BSRR = 0x0030;需要你转换为二进制才能来清楚是哪位进行了置1,这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值