STM32 GPIO奇怪的现象,求高手解答!!!

[复制链接]
2460|3
 楼主| zpithpl 发表于 2013-3-28 15:53 | 显示全部楼层 |阅读模式
我在使用STM32F103时,PA15作为推挽输出,PA8作为下拉输入,初始化如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA  | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);       
上述程序我单步运行,在执行完PA15初始化后,PA8口对应的IDR寄存器值变成1(高电平)。然后我继续执行PA8的初始化,结果IDR的值仍然是1,真的很奇怪,外部什么都没连,按理下拉输入应该是低电平才对啊。
请高手帮忙分析一下,谢谢!!
 楼主| zpithpl 发表于 2013-3-28 16:19 | 显示全部楼层
没有人遇到过或知道的吗?
hawksabre 发表于 2013-3-28 20:00 | 显示全部楼层
帮你顶一个   基本的注释还是要有的  这样看起来不会很吃力   呵呵
 楼主| zpithpl 发表于 2013-3-29 09:33 | 显示全部楼层
hawksabre 发表于 2013-3-28 20:00
帮你顶一个   基本的注释还是要有的  这样看起来不会很吃力   呵呵

后来又找了一下原因,发现当PA15(JTAG复用引脚,但已禁用)作为推挽输出时,读取PA8的输入电平就是错误的;而当PA15作为开漏输出时,读取PA8的输入电平就是正确的。
可是我的板子设计的时候,PA15一定要作推挽输出才行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部