|
这个文件主要用于新手学习和了解如何利用固件库编程来使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)
|
评分
-
查看全部评分
|