標題: 基于stm32f103R6 GPIO輸入—按鍵檢測程序(入門篇) [打印本頁]

作者: 哈哈哈我aa    時間: 2019-3-2 22:04
標題: 基于stm32f103R6 GPIO輸入—按鍵檢測程序(入門篇)
這個文件主要用于新手學(xué)習(xí)和了解如何利用固件庫編程來使GPIO口實現(xiàn)輸入��!狀態(tài)從而使按鍵來控制點亮LED燈


不懂可以聯(lián)系我 互相學(xué)習(xí)共同進步

單片機源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    bsp_key.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @brief   按鍵應(yīng)用bsp(掃描模式)

  7.   ******************************************************************************
  8.   */
  9.   
  10. #include "./key/bsp_key.h"  

  11. /**
  12.   * @brief  配置按鍵用到的I/O口
  13.   * @param  無
  14.   * @retval 無
  15.   */
  16. void Key_GPIO_Config(void)
  17. {
  18.         GPIO_InitTypeDef GPIO_InitStructure;
  19.         
  20.         /*開啟按鍵端口的時鐘*/
  21.         RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK|KEY2_GPIO_CLK,ENABLE);
  22.         
  23.         //選擇按鍵的引腳
  24.         GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;
  25.         // 設(shè)置按鍵的引腳為浮空輸入
  26.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  27.         //使用結(jié)構(gòu)體初始化按鍵
  28.         GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
  29.         
  30.         //選擇按鍵的引腳
  31.         GPIO_InitStructure.GPIO_Pin = KEY2_GPIO_PIN;
  32.         //設(shè)置按鍵的引腳為浮空輸入
  33.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  34.         //使用結(jié)構(gòu)體初始化按鍵
  35.         GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);        
  36. }

  37. /*
  38. * 函數(shù)名:Key_Scan
  39. * 描述  :檢測是否有按鍵按下
  40. * 輸入  :GPIOx:x 可以是 A,B,C,D或者 E
  41. *                     GPIO_Pin:待讀取的端口位         
  42. * 輸出  :KEY_OFF(沒按下按鍵)、KEY_ON(按下按鍵)
  43. */
  44. uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
  45. {                        
  46.         /*檢測是否有按鍵按下 */
  47.         if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON )  
  48.         {         
  49.                 /*等待按鍵釋放 */
  50.                 while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);   
  51.                 return         KEY_ON;         
  52.         }
  53.         else
  54.                 return KEY_OFF;
  55. }
  56. /*********************************************END OF FILE**********************/
復(fù)制代碼

所有資料51hei提供下載:
GPIO輸入—按鍵檢測.7z (177.76 KB, 下載次數(shù): 62)





作者: xzj3203577    時間: 2019-3-20 11:19
樓主,怎么沒看到main程序?
作者: xzj3203577    時間: 2019-3-20 11:21
樓主,看你輸入按鈕檢測程序? 沒有main程序嗎? 檢測都按鍵輸入后怎么 輸出繼電器呢? 能不能指點下,小白剛?cè)腴T




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1