|
這個文件主要用于新手學習和了解如何利用固件庫編程來使GPIO口實現輸入!!狀態從而使按鍵來控制點亮LED燈
不懂可以聯系我 互相學習共同進步
單片機源程序如下:
- /**
- ******************************************************************************
- * @file bsp_key.c
- * @author fire
- * @version V1.0
- * @brief 按鍵應用bsp(掃描模式)
- ******************************************************************************
- */
-
- #include "./key/bsp_key.h"
- /**
- * @brief 配置按鍵用到的I/O口
- * @param 無
- * @retval 無
- */
- void Key_GPIO_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- /*開啟按鍵端口的時鐘*/
- RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK|KEY2_GPIO_CLK,ENABLE);
-
- //選擇按鍵的引腳
- GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;
- // 設置按鍵的引腳為浮空輸入
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- //使用結構體初始化按鍵
- GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
-
- //選擇按鍵的引腳
- GPIO_InitStructure.GPIO_Pin = KEY2_GPIO_PIN;
- //設置按鍵的引腳為浮空輸入
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- //使用結構體初始化按鍵
- GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);
- }
- /*
- * 函數名:Key_Scan
- * 描述 :檢測是否有按鍵按下
- * 輸入 :GPIOx:x 可以是 A,B,C,D或者 E
- * GPIO_Pin:待讀取的端口位
- * 輸出 :KEY_OFF(沒按下按鍵)、KEY_ON(按下按鍵)
- */
- uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
- {
- /*檢測是否有按鍵按下 */
- if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON )
- {
- /*等待按鍵釋放 */
- while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);
- return KEY_ON;
- }
- else
- return KEY_OFF;
- }
- /*********************************************END OF FILE**********************/
復制代碼
所有資料51hei提供下載:
GPIO輸入—按鍵檢測.7z
(177.76 KB, 下載次數: 62)
2019-3-2 22:15 上傳
點擊文件名下載附件
新手專用
|
評分
-
查看全部評分
|