打印

新人请教STM32 GPIO口设置中置位语法的问题。

[复制链接]
581|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
考哥|  楼主 | 2020-4-25 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前用过一段时间51单片机,语法很简单,最近在跟着视频学,视频中有这么一段
RCCAPB2ENR |=((1)<<3;),作用是使能PB口时钟,将时钟使能寄存器中的第3位置1,按照老师的说法是1左移3位,我的理解是将左边第三位置1.
GPIOBCRL |=((1)<<(4*0));作用是将P0口配置为推挽输出模式,根据手册应该是将GPIOB的端口配置低寄存器中的低四位设置为0001,这个我不理解,意思是低4位先全部设置为0,然后1左移0位?
GPIOBODR &=~(1<<0)  ;这句的作用应该是PB0输出设0,。
因为以前学51单片机,经常对某一个端口操作就是p0^1=1,这样,现在换成STM32完全不一样,我现在想请教的是这种|=,&=~,还有寄存器的置位操作的语法在哪儿可以学到?就像是((1)<<3)这种操作。

使用特权

评论回复

相关帖子

沙发
yml1104| | 2020-4-25 11:29 | 只看该作者
GPIOBCRL |=((1)&lt;&lt;(4*0))可以理解为GPIOBCRL |=((1)<<(4*0))
意思是0001左移0位 4是一次移动四个位的意思

使用特权

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

本版积分规则

461

主题

477

帖子

0

粉丝