关于STM32单片机GPIO口上拉与下拉输入

关于STM32单片机GPIO口上拉与下拉输入

  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<strong>  

这是下拉 ,发现当设置为上拉输入后,其ODR(GPIO输出数据寄存器)相应的也置为1(可以设置BSRR寄存器)

      由图可以发现其实输出寄存器与输入寄存器之间在I/O引脚处是线与状态,在GPIO设置成上位输入时,其上拉电阻闭合,这时如果输出寄存器设置为0那么在IO口内部就会自己损耗电流,而这些电流的损耗是会增加功耗的。因此当GPIO设置成上拉输入时,相应的输出寄存器也设置为1.