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;

STM32按键控制LED灯实验 - 基于标准库的代码示例

原文地址: https://www.cveoy.top/t/topic/S6c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录