位带操作

2019-07-20 18:58发布

今天刚学完位带操作,也基本明白了位带操作的基本思路:就是把相应寄存器的位映射到一个32位的地址,然后对这个地址进行写1或者写0操作,但是我实在理解不了这样操作怎么就好处多多,怎么就可以防止被中断打断主程序指令了,(好像是说改变了寄存器的读改写的操作过程)。真的不明白位带操作优点的真正含义。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
操作系统
1楼-- · 2019-07-20 21:21
STM32的位操作,编译器会生成原子操作指令。这样子就安全了。不明白 原子操作 自己去百度。
Akatsuki_lim
2楼-- · 2019-07-21 00:22
 精彩回答 2  元偷偷看……
K.O.Carnivist
3楼-- · 2019-07-21 05:19
Akatsuki_lim 发表于 2016-11-11 18:13
其中一个原因:32的寄存器不能像51那样有位操作

其实楼主说的中断打断主程序和位操作指令关系不太大。主要是ARM的运算指令不能操作直接地址吧。
qingyu111
4楼-- · 2019-07-21 07:47
应该还有另外一种好处:就是比用GPIO_ReSetBits()/GPIO_SetBits()效率更高
dozm
5楼-- · 2019-07-21 07:49
本帖最后由 dozm 于 2016-11-12 09:25 编辑

应该是习惯了51单片机的那种IO口操作方式,用起来比较方便。
ouxili
6楼-- · 2019-07-21 11:25
 精彩回答 2  元偷偷看……

一周热门 更多>