OpenEdv-开源电子网

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

GPIO设置为输入的时候,读取高或低电平的时候,都显示读到低电平

[复制链接]

32

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-10-9
在线时间
46 小时
发表于 2015-11-19 14:41:13 | 显示全部楼层 |阅读模式
5金钱
如题,高电平是3.9-4.0V,输入使用浮空,上拉,下拉都不行。
思路是,我使用了一枚或芯片,将所有外部的开关量或起来,输出作为STM32的外部中断,这部分没问题。外部的开关量有高电平了就会触发中断。
但是进入中断以后,我扫面所有的管脚,结果却全为低,而此时用电压表测,实际为高。用jtag单步调试的时候,只能跳到else那里(橙色标出来了)。
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  uint8_t bitstatus = 0x00;
  
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  assert_param(IS_GET_GPIO_PIN(GPIO_Pin)); 
  
  if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET)
  {
    bitstatus = (uint8_t)Bit_SET;
  }
  else
  {
    bitstatus = (uint8_t)Bit_RESET;
  }
  return bitstatus;
}


另外附上工程文件

希望大神帮一下忙

CPU.SchDoc

318 KB, 下载次数: 270

UCOSII空工程.zip

5.61 MB, 下载次数: 64

最佳答案

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

我自己解决了。。。我没开GPIOC的时钟………………麻烦大家了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-10-9
在线时间
46 小时
 楼主| 发表于 2015-11-19 14:41:14 | 显示全部楼层
我自己解决了。。。我没开GPIOC的时钟………………麻烦大家了
回复

使用道具 举报

32

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-10-9
在线时间
46 小时
 楼主| 发表于 2015-11-19 14:42:21 | 显示全部楼层
外部中断以及中断函数,在exti.c里,是用的外部中断线2
回复

使用道具 举报

32

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2014-10-9
在线时间
46 小时
 楼主| 发表于 2015-11-19 14:43:30 | 显示全部楼层
管脚设置在led.c里
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 07:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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