有个小问题 关于位操作

2019-07-21 07:13发布

在配置odr寄存器的时候:
想拉高PE2~4 我这么写  GPIOE->ODR |= 0x00011100; 为啥不对

而这么写的话又是对的 GPIOE->ODR |= 7<<2;       

请问上面那个问什么不对
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
warship
2019-07-21 16:41
Jasonlearning 发表于 2018-12-4 15:35
o 我写成 0001 1100 就行了是吧,还请赐教

0x用于表示十六进制数,
你的0001 1100本意是二进制数,实际上就是0x1C
所以写成0x1C就可以了,难道写成0x1C会死的吗?
二进制写起来太长了,读写都不方便,在C语言里一般不用。
试想STM32是32位机,你写一个32位的二进制试试。
如果你非要写二进制,可以用0b00011100看行不行(我不确定,很久没直接写二进制了)。

一周热门 更多>