实验要求:
开发板PB9连接"按键"一端,"按键"另一端连接地。当按下"按键"时,蓝色LED灯状态进行翻转,由点亮变熄灭或由熄灭变点亮。
按键采集.png

关键程序:
/**

  • 功能:初始化按键引脚PB9
  • 参数:None
  • 返回值:None
    */
void initKey(void)
{
   GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIO时钟

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;          //设置按键对应引脚 PB9
   GPIO_InitStructure.GPIO_Mode = **GPIO_Mode_IPU;  //设置上拉输入**
   GPIO_Init(GPIOB, &GPIO_InitStructure);              //设置生效
}
/****main.c************/
#include   "LED/LED.h"
#include   "KEY/KEY.h"
#include   "DELAY/DELAY.h"
#include   "stm32f10x.h"

int main(void)
{
    initLED(); //初始化LED    
    Delay_init(); //延时初始化
    initKey();    //初始化按键引脚

    Delay_ms(100);
    R_LED_OFF;
    G_LED_OFF;
    Y_LED_OFF;
    while (1)
    {    //红绿黄流水灯
        R_LED_ON;
        Delay_ms(200);
        R_LED_OFF;
        
        G_LED_ON;
        Delay_ms(200);    
        G_LED_OFF;
        
        Y_LED_ON;
        Delay_ms(200);    
        Y_LED_OFF;    
        //当按下按键并且黄色LED灯熄灭时 , 改变蓝色LED状态
        if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
        {    
            toggleLED();//改变蓝色LED状态
        }
    }
}

标签: none

评论已关闭