OpenEdv-开源电子网

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

stm32f405RG芯片读引脚状态有问题

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-8-27
在线时间
3 小时
发表于 2018-8-27 13:39:40 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 loujichen 于 2018-8-27 14:11 编辑

我用到这款芯片的PA0~PA7 脚作为输入脚,读它的引脚状态,根据引脚是0或者1去做相应动作,配置信息如下。

  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//PA0~PA7
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);


引脚外部通过上拉电阻拉高,同时通过轻触开关接地,在开关按下后会被拉低。

在实际使用种发现,测试引脚电平 都符合要求,轻触开关没有按下的时候是3.3V,按下后是0V。
但是利用GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)这个函数去读,得到的值是0。一直没有发现什么原因。

偶然的情况下,发现把PA口 中的任意一个脚设置为输出脚,例如(PA10)(其它PA的脚也可以)配置如下

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
  GPIO_InitStructureA.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructureA.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructureA.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructureA.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructureA.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOA, &GPIO_InitStructureA);

并把它设置为高(这里是不是必须要设置成高电平我没有试验)
此时PA0~PA7的读数就正常了,但是不清楚原因。
而且我还有PD口也有一些要读取数据的,难道都必须单独拿一个引脚出来做一个输出口才可以吗?或者是我哪里设置的有问题,请各位大大帮忙解决一下,或者有遇到过类似情况的说一下是什么原因,拜谢~

下位机程序.rar

3.54 MB, 下载次数: 31

所有代码程序,目前PD2口也是这个问题,默认应该是拉高的,测到的电压也是高的,但是PD2读取IO口的状态是0

最佳答案

查看完整内容[请看2#楼]

已解决,问题出在子的函数里定义的初始化,然后再主函数中没有调用(led,key),只调用了led初始化,没有调用key初始化,所以再led中添加PA口任意一个口初始化的时候,从动的把key口初始化打开了,程序就正常了。小问题,但问题找了好久。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-8-27
在线时间
3 小时
 楼主| 发表于 2018-8-27 13:39:41 | 显示全部楼层
已解决,问题出在子的函数里定义的初始化,然后再主函数中没有调用(led,key),只调用了led初始化,没有调用key初始化,所以再led中添加PA口任意一个口初始化的时候,从动的把key口初始化打开了,程序就正常了。小问题,但问题找了好久。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 14:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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