关于简单的语言问题

2019-10-14 23:22发布

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);
这句我知道是对GPIOB和GPIOE的时钟进行使能,但是我不明白,函数第一个参数中 | 是什么意思,按位或吗,还是仅仅是一个分隔符,如果是按位或的话,我想知道为什么能够这样写。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
XUZJWWSZ
1楼-- · 2019-10-15 04:57
是或的意思,你可以暂时先记住。
简单的说就是这个函数是给CPU的寄存器赋值,先赋值0001,再赋值0010   等价于 一次性赋值   (0001  |  0010 )
likunxue
2楼-- · 2019-10-15 08:14
本帖最后由 likunxue 于 2017-2-25 00:58 编辑

简单理解就是两个二进制数据从低位加相,代码这样写是因为C语言你特性充许这样操用,如第一个参数是X = 00, 第2个参数是Y = 0X80,

OUT(X|Y);    结果,传给OUT这个函数的参数是 0X80  但, X,Y的值依然没有被改变.
DongInker
3楼-- · 2019-10-15 11:49
RCC_APB2PeriphClock 是一个APB2有关外设的时钟使能控制寄存器,假设是32位寄存器,那么最大就可以管理32个外设的时钟,每个外设对应相应位,所以打开时钟可以单个或多个同时打开(多个时就使用你说的或‘|’运算)。这其实是位操作最常用的方法,既可以单独操作,又可以多个一起操作。
lvkanger
4楼-- · 2019-10-15 13:04
 精彩回答 2  元偷偷看……
WWCool
5楼-- · 2019-10-15 16:27
XUZJWWSZ 发表于 2017-2-24 21:48
是或的意思,你可以暂时先记住。
简单的说就是这个函数是给CPU的寄存器赋值,先赋值0001,再赋值0010   等 ...

对寄存器赋值就是把一个数给寄存器这里或的两边相当于两个数,将这两个数按位或就是把他们综合起来,0001 | 0010=0011,这样就是同时给寄存器的两个位同时赋1.我明白了

一周热门 更多>