STM32按键控制LED灯实验 - 基于标准库的代码示例
STM32按键控制LED灯实验 - 基于标准库的代码示例
本篇博客文章将介绍如何使用STM32标准库编写一个简单的按键控制LED灯的程序。我们将使用一个按键来控制一个LED灯的亮灭状态。
硬件准备
- STM32F10x开发板* LED灯* 按键* 面包板* 杜邦线
软件准备
- Keil MDK-ARM* STM32F10x标准外设库
硬件连接
将LED灯连接到STM32开发板上的PA8引脚,将按键连接到PA0引脚。
软件设计
我们将使用三个文件来组织我们的代码:
- main.c: 主程序文件* bsp_led.c: LED驱动程序文件* bsp_key.h: 按键驱动程序头文件
main.cc#include 'bsp_led.h'#include 'bsp_key.h'
void delay(uint32_t count){ for(; count!=0; count--);}
int main(void){ LED_GPIO_Config(); KEY_GPIO_Config();
while(1) { if (KEY_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN)==KEY_ON) { LED1_TOGGLE; } }}
bsp_led.cc#include 'bsp_key.h'
void KEY_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(KEY1_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);}
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;
原文地址: https://www.cveoy.top/t/topic/S6c 著作权归作者所有。请勿转载和采集!