標題:
基于stm32f103R6 GPIO輸入—按鍵檢測程序(入門篇)
[打印本頁]
作者:
哈哈哈我aa
時間:
2019-3-2 22:04
標題:
基于stm32f103R6 GPIO輸入—按鍵檢測程序(入門篇)
這個文件主要用于新手學(xué)習(xí)和了解如何利用固件庫編程來使GPIO口實現(xiàn)輸入��!狀態(tài)從而使按鍵來控制點亮LED燈
不懂可以聯(lián)系我 互相學(xué)習(xí)共同進步
單片機源程序如下:
/**
******************************************************************************
* @file bsp_key.c
* @author fire
* @version V1.0
* @brief 按鍵應(yīng)用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;
// 設(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
* 描述 :檢測是否有按鍵按下
* 輸入 :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**********************/
復(fù)制代碼
所有資料51hei提供下載:
GPIO輸入—按鍵檢測.7z
(177.76 KB, 下載次數(shù): 62)
2019-3-2 22:15 上傳
點擊文件名下載附件
新手專用
下載積分: 黑幣 -5
作者:
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