OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6175|回复: 2

STM32F407 GPIO配置为输入输出需要延时才能正确操作

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-5-26
在线时间
1 小时
发表于 2021-9-23 10:23:53 | 显示全部楼层 |阅读模式
2金钱
我使用的是STM32F407,使用三个GPIO脚,分别为PE0、PE1配置为输入,PE7配置为输入,配置方式如下:
  1. GPIO_InitTypeDef GPIO_InitStructure;
  2.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);                 //使能GPIOE时钟
  3.        
  4.     // PE0,PE1配置为输出
  5.         GPIO_InitStructure.GPIO_Pin                = GPIO_Pin_0 | GPIO_Pin_1;                                //GPIOE0
  6.         GPIO_InitStructure.GPIO_Mode         = GPIO_Mode_OUT;                        //普通输出模式
  7.         GPIO_InitStructure.GPIO_Speed         = GPIO_Speed_100MHz;                //速度50MHz
  8.         GPIO_InitStructure.GPIO_OType         = GPIO_OType_PP;                         //推挽输出
  9.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  10.         GPIO_Init(GPIOE, &GPIO_InitStructure);                                                 //初始化PE0 PE1

  11.     //配置PE7为输入
  12.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  13.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  14.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  15.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;              //输入管脚可以根据需要设置上下拉
  16.         GPIO_Init(GPIOE, &GPIO_InitStructure);
复制代码
PE0,PE1用于控制外部LED,PE7读取外部网线插入状态(插入为高电平)。
但是使用时发现,芯片上电初始化之后,必须设置至少2s左右延时才能正确操作或者读取以上三个管脚,不知道是什么问题造成的?




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2021-9-24 00:51:43 | 显示全部楼层
回复

使用道具 举报

4

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2020-6-12
在线时间
49 小时
发表于 2021-9-24 14:16:34 | 显示全部楼层
检查一下没有其他地方重复用到这些引脚,也可以仿真检查下程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-5 22:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表