[MM32硬件] 【MM32 eMiniBoard测评报告】+3、按键输入LED输出

[复制链接]
 楼主| tlled 发表于 2020-4-22 21:59 | 显示全部楼层 |阅读模式
本帖最后由 tlled 于 2020-4-22 21:59 编辑

     这节来学习下GPIO输入,按键输入LED输出。

     一、硬件电路

     K1-K4按键使用的是PB1,PB2,PB10,PB11 四个IO口。      100.png
      101.png
    二、程序部分

    2.1、main.c
  1. #include "config.h"

  2. int main(void)   
  3. {
  4.     delay_init();
  5.     LED_Init();
  6.                 KEY_Init();
  7.     while(1)              //ÎÞÏÞÑ­»·
  8.     {
  9.                                 key_test();
  10.     }
       2.2、key.c
  1. #include "config.h"


  2. void KEY_Init(void)
  3. {
  4.     GPIO_InitTypeDef GPIO_InitStructure;
  5.    
  6.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOB|RCC_AHBPeriph_GPIOC,ENABLE);//ʹÄÜGPIOA,GPIOB,GPIOCʱÖÓ
  7.        
  8.                 GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1;
  9.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;  
  10.     GPIO_Init(GPIOB, &GPIO_InitStructure);

  11.     GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_10|GPIO_Pin_11;
  12.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  
  13.     GPIO_Init(GPIOB, &GPIO_InitStructure);
  14. }


  15. void  key_test(void)
  16. {
  17.        
  18.         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0)  //K1 UP
  19.         {
  20.                 LED4_ON();
  21.         }
  22.         else
  23.         {
  24.                 LED4_OFF();
  25.         }
  26.         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)!=0)  //K2 UP
  27.         {
  28.                 LED3_ON();
  29.         }
  30.         else
  31.         {
  32.                 LED3_OFF();
  33.         }
  34.         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)!=0)  //K3 UP
  35.         {
  36.                 LED2_ON();
  37.         }
  38.         else
  39.         {
  40.                 LED2_OFF();
  41.         }
  42.         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)!=0)  //K4 UP
  43.         {
  44.                 LED1_ON();
  45.         }
  46.         else
  47.         {
  48.                 LED1_OFF();
  49.         }
  50.        
  51. }

    2.3、程序源码
    mm32_prj-20200422.rar (1.65 MB, 下载次数: 0)

     三、执行结果

    按下K1-K4,对应的LED指示灯亮,松开灭。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

701

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部

132

主题

701

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部