【ARM】RCC->APB2ENR|=1<<5; //使能PORTD时钟 RCC->APB2ENR=1<<5; 以上两句代码效果差别是什么
答案:2 悬赏:50 手机版
解决时间 2021-11-28 02:27
- 提问者网友:送舟行
- 2021-11-27 12:24
【ARM】RCC->APB2ENR|=1<<5; //使能PORTD时钟 RCC->APB2ENR=1<<5; 以上两句代码效果差别是什么
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-11-27 12:39
这基本上有两个答题方向, 端看问题人想要知道的是什麼.
当使用 ( = 1<<5) 此APB2 bus上仅有PORTD有效;
当使用 ( |= 1<,5) 此APB2 bus上, 原有设定不变, 额外增加使能PORTD.
- 语法
在语法上, = 与 |= 是不同概念.
a = 2 ; // a变数为2
a |= 2 ; // 等同於 a = (a | 2); 只有a=0时, a才会是2
OR语法若不清楚, 网路上很容易查到Digital Logic方面的介绍.
单片机功能
RCC->APB2ENR, 指的是APB2(第二组 Peripheral Bus)各区块IP的Clock使能或禁能.
在语法上的作用同前,
(1) = 1<<5 ; // 将APB2ENR这一rigister内容设定为(1<<5), 也就是只有bit5代表的硬件使能生效.
(2) |= 1<<5 ; // 将APB2ENR这一rigister内容OR(1<<5), 也就是除原有硬件使用设定外, 额外增加bit5代表的硬件, 可以工作.
当使用 ( = 1<<5) 此APB2 bus上仅有PORTD有效;
当使用 ( |= 1<,5) 此APB2 bus上, 原有设定不变, 额外增加使能PORTD.
全部回答
- 1楼网友:逐風
- 2021-11-27 13:53
RCC->APB2ENR|=1<<5;是不影响其他片上外设并时能PORTD的时钟;
RCC->APB2ENR=1<<5;是把其他APB2的外设时钟禁能并把PORTD的时钟使能;
后者运行不了的原因大概就是你把不该关的外设的时钟给关了
RCC->APB2ENR=1<<5;是把其他APB2的外设时钟禁能并把PORTD的时钟使能;
后者运行不了的原因大概就是你把不该关的外设的时钟给关了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯