有个小问题 关于位操作

2019-07-21 07:13发布

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

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

请问上面那个问什么不对
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
2018Dog
1楼-- · 2019-07-21 21:51
Jasonlearning 发表于 2018-12-4 15:35
o 我写成 0001 1100 就行了是吧,还请赐教

根本问题:如何把二进制转十六进制
你看GPIOx_ODR 寄存器,用到了低16位,高16位保留。(不方便截图)
把对应的位写1,应该是0000 0000  0001 1100(共16位)
这是二进制表示法,但一般不会写成二进制,因为可读性差,所以用十六进制表示的。
那么怎么写成十六进制呢?
这个问题你应该问度娘了。
Jasonlearning
2楼-- · 2019-07-22 00:54
hgr211 发表于 2018-12-4 15:54
基础的c语言去学下吧,兄弟

正在学
Jasonlearning
3楼-- · 2019-07-22 03:07
 精彩回答 2  元偷偷看……
Jasonlearning
4楼-- · 2019-07-22 07:16
2018Dog 发表于 2018-12-4 15:59
根本问题:如何把二进制转十六进制
你看GPIOx_ODR 寄存器,用到了低16位,高16位保留。(不方便截图)
...

感谢感谢
齐国漆园吏
5楼-- · 2019-07-22 12:32
0x表示的是16进制 你写的0x0001 1100实际上是10001000100000000

一周热门 更多>