打印

STM32F103ZET6 PA0问题?

[复制链接]
3784|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用PA0做为IO按键输入,加了一个上拉电阻。

当你按下按键时,PA0没有被拉低,依旧是高。

请用过ZET6的兄弟们,指点一下。

程序如下:

void GpioInit(void)
{
/* Configure all unused GPIO port pins in Analog Input mode (floating input
  trigger OFF), this will reduce the power consumption and increase the device
  immunity against EMI/EMC */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE);
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_Init(GPIOF, &GPIO_InitStructure);
GPIO_Init(GPIOG, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, DISABLE);   

// Enable GPIO_LED clock
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);
// Output LD1 LD2 LD3 LD4
GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIO_LED, &GPIO_InitStructure);
// KEY Input
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0 | GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(TamperKey, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(User2Key, &GPIO_InitStructure);
}
沙发
yybj| | 2010-1-5 10:13 | 只看该作者
你用的芯片,初始化是高组态吧

使用特权

评论回复
板凳
sinadz| | 2010-1-5 16:27 | 只看该作者
你程序里,哪里给了低电平呢,我咋没找到

使用特权

评论回复
地板
win2000_li|  楼主 | 2010-1-6 21:05 | 只看该作者
是这样的,我设置PA0为输入,并且外部加了上拉电阻的。

使用特权

评论回复
5
win2000_li|  楼主 | 2010-1-6 21:07 | 只看该作者
如下图

2.jpg (8.94 KB )

2.jpg

使用特权

评论回复
6
香水城| | 2010-1-6 21:29 | 只看该作者
按照这个电路,按下按键时,PA0不可能不被拉低,肯定是硬件有问题。看看你的按键是不是坏了?

使用特权

评论回复
7
gf86530430| | 2010-1-7 09:38 | 只看该作者
软件 按键PIN时钟使能了,如果初始化输入没问题的话没道理不变低!

使用特权

评论回复
8
gf86530430| | 2010-1-7 09:39 | 只看该作者
还有是你从软件读的还是用表量的?

使用特权

评论回复
9
yybj| | 2010-1-7 13:06 | 只看该作者
硬件的问题吧

使用特权

评论回复
10
pkat| | 2010-1-8 09:59 | 只看该作者
你先用万用表量,如果是低,就证明硬件上没问题

使用特权

评论回复
11
win2000_li|  楼主 | 2010-3-4 15:58 | 只看该作者
已经解决,非常感谢。。。。

是按键坏了。

结帖。。。。。。。。。。。。

使用特权

评论回复
12
xsgy123| | 2010-3-4 21:54 | 只看该作者
这种问题首先是查硬件

使用特权

评论回复
13
dfsa| | 2010-3-4 22:08 | 只看该作者
按键也太差了,建议下次换个好点的

使用特权

评论回复
14
win2000_li|  楼主 | 2010-3-20 22:14 | 只看该作者
请版主结贴!!!谢谢!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

718

帖子

1

粉丝