标题:
基于stm32f103R6 GPIO输入—按键检测程序(入门篇)
[打印本页]
作者:
哈哈哈我aa
时间:
2019-3-2 22:04
标题:
基于stm32f103R6 GPIO输入—按键检测程序(入门篇)
这个文件主要用于新手学习和了解如何利用固件库编程来使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 上传
点击文件名下载附件
新手专用
下载积分: 黑币 -5
作者:
xzj3203577
时间:
2019-3-20 11:19
楼主,怎么没看到main程序?
作者:
xzj3203577
时间:
2019-3-20 11:21
楼主,看你输入按钮检测程序? 没有main程序吗? 检测都按键输入后怎么 输出继电器呢? 能不能指点下,小白刚入门
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1