STM32按键检测

2019-07-14 20:07发布

大侠你们好,我刚刚学习STM32,这个程序为什么不工作
#include "stm32f10x.h"
#include "stm32_eval.h"
//#include <stdio.h>
#define        LED1_PIN               GPIO_Pin_6//¶¨ÒåLEDÒý½Å
#define        LED2_PIN               GPIO_Pin_7
#define        LED3_PIN               GPIO_Pin_8
#define        LED4_PIN               GPIO_Pin_9
#define KEY3_PIN               GPIO_Pin_0


#define         GPIO_KEY               GPIOA
#define  RCC_GPIO_KEY1          RCC_APB2Periph_GPIOA

#define         GPIO_LED                GPIOF        //¶¨ÒåGPIO×é
#define  RCC_GPIO_LED           RCC_APB2Periph_GPIOF   
//#define LEDON_GPIO_CLK         RCC_APB2Periph_GPIOB //·äÃùÆ÷LEDʹÓõÄGPIOʱÖÓ*/

GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;

void Delay(vu32 nCount)
{
  for(; nCount != 0; nCount--);
}

void KEY_GPIO_config(void)
{
        RCC_APB2PeriphClockCmd(RCC_GPIO_KEY1, ENABLE);/*ʹÄÜLEDµÆʹÓõÄGPIOʱÖÓ*/
        GPIO_InitStructure.GPIO_Pin = KEY3_PIN;//|LED2_PIN |LED3_PIN|LED4_PIN;  //¿ØÖÆIOÒý½Å
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//ÉèÖÃÉÏÀ­ÊäÈë
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  //¶¨ÒåʱÖÓ
        GPIO_Init(GPIO_LED, &GPIO_InitStructure);          
}

void LED_cofing(void)
{       
        RCC_APB2PeriphClockCmd(RCC_GPIO_LED, ENABLE);/*ʹÄÜLEDµÆʹÓõÄGPIOʱÖÓ*/
        GPIO_InitStructure.GPIO_Pin = LED1_PIN;//|LED2_PIN |LED3_PIN|LED4_PIN;  //¿ØÖÆIOÒý½Å
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//ÉèÖÃͨÓÃÍÆÍìÊä³ö
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //¶¨ÒåʱÖÓ
        GPIO_Init(GPIO_LED, &GPIO_InitStructure);      //¶¨ÒåGPIO×é       
}

int main(void)

{
        LED_cofing();
  KEY_GPIO_config();
       
  GPIO_SetBits(GPIO_LED, LED1_PIN);  

        while(1)
        {
                if(GPIO_ReadInputDataBit(GPIOA,KEY3_PIN ==0))
                {
                        Delay(0xffff);
                        if(GPIO_ReadInputDataBit(GPIOA,KEY3_PIN ==0))
                        {
                                GPIO_ResetBits(GPIO_LED, LED1_PIN);                                
                  }
           }
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
上官梦舞
1楼-- · 2019-07-15 23:11
程序并不长,只是感觉没问题啊。
wywaa2008
2楼-- · 2019-07-15 23:56
上官梦舞 发表于 2016-11-25 09:55
程序并不长,只是感觉没问题啊。

为什么不工作了。我很郁闷
wywaa2008
3楼-- · 2019-07-16 02:48
hobbye501 发表于 2016-11-24 16:14
这样 先不管按键 直接LED测试  看是哪个不对

LED灯是没有问题的
cuyebiren
4楼-- · 2019-07-16 07:22
 精彩回答 2  元偷偷看……
wywaa2008
5楼-- · 2019-07-16 11:03
cuyebiren 发表于 2016-11-25 10:31
if(GPIO_ReadInState(GPIOA,GPIO_Key3_Pin==0))错了
应该是
if(GPIO_ReadInState(GPIOA,GPIO_Key3_Pin) == 0)

谢谢,确实是这个问题,谢谢您
lemonboard
6楼-- · 2019-07-16 12:36
这个错误,编译器的确不会报错

一周热门 更多>