[应用相关] STM32——GPIO输入模式下上拉和下拉的设置

[复制链接]
2121|3
 楼主| 幸福小强 发表于 2018-6-26 10:32 | 显示全部楼层 |阅读模式
GPIO处于输入模式下,下拉输入和上拉输入的相关配置如下图所示。需要注意的是,下拉输入和上拉输入是通过端口输出寄存器GPIOx_ODR来区分的。因此,在进行上拉/下拉输入配置时候,虽然对GPIO进行的关于输入的操作,但是仍要对和输出相关的寄存器ODR进行配置。
493495b31a593986b7.png
上述注意事项在实际代码编写时表现为:
(1)库函数
  1. GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;  //PA0     
  2. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0 下拉输入   
  3. GPIO_Init(GPIOA, &GPIO_InitStructure);  
  4. GPIO_ResetBits(GPIOA,GPIO_Pin_0);       //PA0 下拉 ODR=0


特此说明,虽然GPIO_Mode中区分了上拉输入模式GPIO_Mode_IPU和下拉输入模式GPIO_Mode_IPD,如下图所示,但是在GPIO初始化配置时候仍然需要对ODR寄存器进行设置,如上述的GPIO_ResetBits(GPIOA,GPIO_Pin_0);操作。
 楼主| 幸福小强 发表于 2018-6-26 10:37 | 显示全部楼层
51425b31a5d05700c.png
(2)寄存器
  1. GPIOA->CRL&=0XFFFFFFF0;  //PA0 清除之前设置   
  2. GPIOA->CRL|=0X00000008;  //PA0 输入     
  3. GPIOA->ODR|=0<<0;      //PA0 下拉
此外,GPIO处于输入模式下,不需要对MODE1MODE0进行设置(初始化之后默认为00
417705b31a6dab4e28.png
输出模式位(仅在输出模式下配置,输入模式下不需要)
guanjiaer 发表于 2018-6-26 10:53 | 显示全部楼层
基础知识讲解很到位
sola7renou 发表于 2018-6-26 12:47 | 显示全部楼层
讲解的非常详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1727

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部