STM32F4的IO口初始电平

2019-07-20 21:37发布

本帖最后由 xuande 于 2016-6-21 18:49 编辑

     我在探索者F407中点亮LED时只初始化为上拉推挽输出模式,而没有初始化引脚电平状态,单片机默认管脚为低电平,LED灯点亮。
我想问:上拉推挽输出模式设置完成之后,芯片引脚不是被拉高了吗?为什么此时单片机芯片引脚还是为低电平?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
xkwy
1楼-- · 2019-07-20 23:51
因为你没有改GPIOx->ODR的值,它默认是0,当设置为推挽输出后,就是输出0,跟上拉电阻没关系,,,还有怎么有上拉推挽这种模式?既然推挽了,上拉有嘛用?白耗电么
天空淡云
2楼-- · 2019-07-21 04:12
 精彩回答 2  元偷偷看……
天空淡云
3楼-- · 2019-07-21 09:36
本帖最后由 天空淡云 于 2016-6-19 12:17 编辑
天空淡云 发表于 2016-6-19 12:14
void BEEP_Init(void)


void BEEP_Init(void)
{   
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟
  
  //初始化蜂鸣器对应引脚GPIOF8
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO
        
  GPIO_ResetBits(GPIOF,GPIO_Pin_8);  //蜂鸣器对应引脚GPIOF8拉低,
}

上面代码中,下拉和引脚拉低分别代表什么
天空淡云
4楼-- · 2019-07-21 10:38
xkwy 发表于 2016-6-12 12:14
因为你没有改GPIOx->ODR的值,它默认是0,当设置为推挽输出后,就是输出0,跟上拉电阻没关系,,,还有怎么 ...

[mw_shl_code=c,true]void BEEP_Init(void)
{   
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟
  
  //初始化蜂鸣器对应引脚GPIOF8
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO
       
  GPIO_ResetBits(GPIOF,GPIO_Pin_8);  //蜂鸣器对应引脚GPIOF8拉低,
}

上面代码中,下拉和引脚拉低区别是什么,能不能只设置其中一个来控制引脚电平变化啊?[/mw_shl_code]
天空淡云
5楼-- · 2019-07-21 13:44
 精彩回答 2  元偷偷看……

一周热门 更多>