对寄存器操作方法的经验和其总结

接触了一阵子的stm32函数库,使用起来挺方便的,但是很少有处理器会有函数库,大部分情况下还是要自己来对寄存器进行操作,所以还是不要生疏了对寄存器的操作。
对寄存器的操作有时候要考虑对其不同的位进行先后顺序不同的设置,因为这样可能达不到预期的效果,这个不太好总结,但是对寄存器操作的方法是固定的。
在这之前,首先要明白逻辑运算符(! && ||)和位运算符( ~ | ^&)的区别,对寄存器的操作使用的是位运算符,逻辑运算符一般用于在程序中判断逻辑中使用。
例如 定义一个8位的寄存器(0xf0是寄存器的地址):
#definereg0xff
1)对单个的位进行赋值
(1)将寄存器reg的第5位置“1”
reg|=(1<<5);
(2)将寄存器reg的第5位清零
reg&=~(1<<5);
(3)将寄存器reg的第3和第5位置“1”
reg|=(1<<5)|(1<<3);
(4)将寄存器reg的第3和5位清零
reg&=~((1<<5)|(1<<3));
该段总结如下:
将某位置1,移位取反后使用位运算|
将某位置0,移位取反后,使用位运算&
2)直接赋值
(1)将寄存器reg的1、2、3、5、7位置“1”
reg=0x5e;
(即给寄存器reg1赋值为10101110,这种方法多在初始化中使用)
(2)分别将寄存器reg的1、3、5、7位置“1”,0、2位置“0”
u8temp;
tmep=reg;
temp&=~0x01;//等价于 temp &=~(1<<0)将第0位清零
temp|=(1<<1);
temp&=~(1<<2);
temp|=(1<<3);
temp|=(1<<5);
temp|=(1<<7);
reg=temp;

关于固体环网柜的应用,它的核心技术是什么
RFID是怎样成为无人超市的功臣的
苹果ipad销量下滑,奢望ipad pro能挽回市场,但结果却不容乐观
NVIDIA的AI专家关于2023年的预测
汽车半导体芯片的挑战与机遇
对寄存器操作方法的经验和其总结
iQOO 9系列将配超快闪充与大电池:速度和耐力都很顶
信骅科技宣布新人事任命 VIAVI 推出光纤测试解决方案
三屏融合是三网融合的有效切入方式
印刷电路板的焊接表面:HAL 无铅
华为助力中国电信实现全球首个5G音视频通话
边缘传感器分析的创新
plc的一半技术规格有哪些?
汽车天线气密性检测,防水检测技术
家电下乡或难延续 小家电补贴成主力
芯闻3分钟:小米30多亿股解禁,雷军及周受资等承诺一年内不出售公司股权
绝缘线到线材产业链 大润科技三年翻番的秘诀
与数字IC相比较,模拟IC更具备它自身独特的属性
模拟技术的特点与应用发展
信号线上为什么要加铁氧体磁环