本菜鸟一开始遇到了一个问题

2019-07-21 02:40发布

我刚刚开始学习STM32F407,就遇到了一个麻烦。我发现PA1作为GPIO输入特别不稳定。我先使能时钟,初始化IO口,我把其他IO口的输出作为PA1的输入,用LED来指示PA1接收到的是高电平还是低电平。。结果LED根本不受控制,乱闪。。我索性拔了导线,把PA1悬空,还是乱闪。最后我把PA1连到3.3V的VCC或GND上,LED还是有闪烁。其它的IO口暂时没发现这种现象,请问是我的设置问题吗?

以下是主程序
[mw_shl_code=c,true]#include "sys.h" #include "delay.h" #include "led.h" #include "usart.h" int main(void) { LED_Init(); delay_init(168); while(1) { if(PAin(1)) { LED0=0; delay_ms(50); } else { LED0=1; delay_ms(50); } } } [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
mack13013
2019-07-21 06:29
delay_ms(50)放到if()else()外面。

PAin(1)初始化了吗?

 给你个初始化参考:

RCC ->AHB1ENR |= 1 << 0;                                                                      //使能PA时钟

GPIO_Set(GPIOA, IN1, GPIO_MODE_IN, 0, 0, GPIO_PUPD_PD);                  //PA1输入,下拉

一周热门 更多>