###### 问题遇到的现象和发生背景
###### 问题相关代码,请勿粘贴截图
最主要是(unsigned int )0x40021018 |=((1)<<3);
和(unsigned int )0x40010C00 |=((1)<<(45))里面的括号看的我很茫然有谁能解释一下((1)<<3)和((1)<<(4*5))是什么意思吗?
###### 运行结果及报错内容
###### 我的解答思路和尝试过的方法
###### 我想要达到的结果
###### 问题遇到的现象和发生背景
###### 问题相关代码,请勿粘贴截图
最主要是(unsigned int )0x40021018 |=((1)<<3);
和(unsigned int )0x40010C00 |=((1)<<(45))里面的括号看的我很茫然有谁能解释一下((1)<<3)和((1)<<(4*5))是什么意思吗?
###### 运行结果及报错内容
###### 我的解答思路和尝试过的方法
###### 我想要达到的结果
这个例子真够烂的,第一次看到在代码里直接用数值表示寄存器的。
前面那个 (unsigned int )0x40010C00 是通过指针的方式操作寄存器,后面是对寄存器的进行操作的值。
((1)<<3)表示1左移3位的值,之所以要这么写,是因为想把bit3置1,((1)<<(45))同理,是1左移20位的值。