打印
[应用相关]

STM32 GPIO输入上拉下拉的寄存器设置方法

[复制链接]
657|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
原贴链接:http://www.openedv.com/forum.php?mod=viewthread&tid=306


在Alientek的源码中的按键输入实验中有如下一段初始化代码:
void KEY_Init(void){
      RCC->APB2ENR|=1<<2;     //使能PORTA时钟
    GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入      
    GPIOA->CRL|=0X00000008;  
    GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入      
    GPIOA->CRH|=0X80800000;                  
    GPIOA->ODR|=1<<13;       //PA13上拉,PA0默认下拉
    GPIOA->ODR|=1<<15;       //PA15上拉
}
经常有用户问道,为什么端口设置为输入,然后还要对输出寄存器进行写操作, GPIOA->ODR|=1<<15;       //PA15上拉
在中文数据手册里面的确没有看到说明,下面是英文手册里面的(从网上找的):


即在将端口设置为上拉/下拉输入的状况下,是由将GPIOx->ODR相应位设置为0或1来设置为下拉输入还是上拉输入的。

使用特权

评论回复
沙发
零三翟邢止胃| | 2019-3-29 09:16 | 只看该作者
好帖子啊!帮你顶住啊!

使用特权

评论回复
板凳
joketinnle| | 2019-3-29 17:17 | 只看该作者
这个应该跟MCU的GPIO结构有关。

使用特权

评论回复
地板
huahuagg| | 2019-3-29 20:05 | 只看该作者
使用库操作很完美

使用特权

评论回复
5
戈卫东| | 2019-3-29 21:32 | 只看该作者
ST的10X系列出的很早,一些寄存器设置不是那么理想

使用特权

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

本版积分规则

49

主题

80

帖子

0

粉丝