打印

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

[复制链接]
1554|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

主题

26

帖子

0

粉丝