|
這個(gè)文件主要用于新手學(xué)習(xí)和了解如何利用固件庫(kù)編程來(lái)使GPIO口實(shí)現(xiàn)輸入。顟B(tài)從而使按鍵來(lái)控制點(diǎn)亮LED燈
不懂可以聯(lián)系我 互相學(xué)習(xí)共同進(jìn)步
單片機(jī)源程序如下:
- /**
- ******************************************************************************
- * @file bsp_key.c
- * @author fire
- * @version V1.0
- * @brief 按鍵應(yīng)用bsp(掃描模式)
- ******************************************************************************
- */
-
- #include "./key/bsp_key.h"
- /**
- * @brief 配置按鍵用到的I/O口
- * @param 無(wú)
- * @retval 無(wú)
- */
- void Key_GPIO_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- /*開(kāi)啟按鍵端口的時(shí)鐘*/
- RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK|KEY2_GPIO_CLK,ENABLE);
-
- //選擇按鍵的引腳
- GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;
- // 設(shè)置按鍵的引腳為浮空輸入
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- //使用結(jié)構(gòu)體初始化按鍵
- GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
-
- //選擇按鍵的引腳
- GPIO_InitStructure.GPIO_Pin = KEY2_GPIO_PIN;
- //設(shè)置按鍵的引腳為浮空輸入
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- //使用結(jié)構(gòu)體初始化按鍵
- GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);
- }
- /*
- * 函數(shù)名:Key_Scan
- * 描述 :檢測(cè)是否有按鍵按下
- * 輸入 :GPIOx:x 可以是 A,B,C,D或者 E
- * GPIO_Pin:待讀取的端口位
- * 輸出 :KEY_OFF(沒(méi)按下按鍵)、KEY_ON(按下按鍵)
- */
- uint8_t Key_Scan(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
- {
- /*檢測(cè)是否有按鍵按下 */
- 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**********************/
復(fù)制代碼
所有資料51hei提供下載:
GPIO輸入—按鍵檢測(cè).7z
(177.76 KB, 下載次數(shù): 62)
2019-3-2 22:15 上傳
點(diǎn)擊文件名下載附件
新手專用 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|