打印

关于STM32 ODR寄存器操作

[复制链接]
1326|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blong75|  楼主 | 2015-7-21 15:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
求助!!!在函数中为什么GPIOB->ODR |=1<<8;可以使PB8输出高电平,而用GPIOB->ODR |=0x0100;不能使PB8输出高电平?如果我想同时使PB8输出高和PB5输出低该怎么操作?本人是初学者请高手指教ODR寄存器的使用方法

相关帖子

沙发
STM32初学者| | 2015-7-21 17:35 | 只看该作者
看下中文参考手册

使用特权

评论回复
板凳
蜕变吧| | 2015-7-22 08:32 | 只看该作者
你可以用1<<8|1<<5达到这个目的。

使用特权

评论回复
地板
邓布利多| | 2015-7-22 08:34 | 只看该作者
GPIOB->ODR |=0x0100;也可以输出高电平。绝对是楼主不知道哪里错了。两者的区别就是,前者不用刻意的去算,交给了电脑。

使用特权

评论回复
5
蜕变吧| | 2015-7-22 08:35 | 只看该作者
看错了,你是要PB8输出高和PB5输出低,不是高的时候,不是默认就是低的么

使用特权

评论回复
6
qinweixing| | 2015-7-22 12:22 | 只看该作者
这是C语言的问题,不关STM32什么事

使用特权

评论回复
7
blong75|  楼主 | 2015-7-28 10:38 | 只看该作者
邓布利多 发表于 2015-7-22 08:34
GPIOB->ODR |=0x0100;也可以输出高电平。绝对是楼主不知道哪里错了。两者的区别就是,前者不用刻意的去算, ...

关了重新编译一下就好了,不知道问题。

使用特权

评论回复
8
blong75|  楼主 | 2015-7-28 10:39 | 只看该作者
蜕变吧 发表于 2015-7-22 08:35
看错了,你是要PB8输出高和PB5输出低,不是高的时候,不是默认就是低的么

默认总觉得不是那么的安全,重新赋值一遍才可以。

使用特权

评论回复
9
blong75|  楼主 | 2015-7-28 10:39 | 只看该作者
qinweixing 发表于 2015-7-22 12:22
这是C语言的问题,不关STM32什么事

确实是纯c的问题。

使用特权

评论回复
10
邓布利多| | 2015-8-25 21:42 | 只看该作者
blong75 发表于 2015-7-28 10:38
关了重新编译一下就好了,不知道问题。

编译环境的问题,是最大的问题。

使用特权

评论回复
11
blong75|  楼主 | 2015-8-29 09:40 | 只看该作者
邓布利多 发表于 2015-8-25 21:42
编译环境的问题,是最大的问题。

果然是,各种莫名其妙的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

83

帖子

1

粉丝