如何在720云网站做全景视频下载,做一个中英文网站的价格,企业网站小程序源码,百度推广销售实验目的 掌握STM32 HAL库的GPIO输入配置方法。 实现通过按钮控制LED亮灭#xff08;支持轮询和中断两种模式#xff09;。 熟悉STM32CubeMX的外部中断#xff08;EXTI#xff09;配置流程。 实验硬件 开发板#xff1a;STM32系列开发板#xff08;如STM32F103C8T6、N…实验目的 掌握STM32 HAL库的GPIO输入配置方法。 实现通过按钮控制LED亮灭支持轮询和中断两种模式。 熟悉STM32CubeMX的外部中断EXTI配置流程。 实验硬件 开发板STM32系列开发板如STM32F103C8T6、Nucleo-F411RE等 LED模块板载LED或外接LED需串联220Ω限流电阻 按钮模块板载按钮或外接机械按钮需串联10kΩ上拉/下拉电阻 调试工具ST-Link调试器或板载调试器 实验软件 STM32CubeMX Keil MDK-ARM / STM32CubeIDE STM32 HAL库 实验步骤 电路图
上拉电阻接法当开关没有按下引角浮空默认提供高电压 当开关按下线路接地引脚为低电压 硬件接线 CubeMX配置 1.创建新工程
选择芯片型号(STM32F103C8T6)。 2.配置系统时钟
SYS → Debug设为Serial Wire。 3.配置按钮引脚
按钮引脚如PA0设为GPIO_Input模式为Pull-up上拉输入。 4.配置LED引脚
LED引脚PC13设为GPIO_Output开漏。 5.生成代码 6.代码实现
// 在main.c的while(1)循环中添加以下代码
while (1) {if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_9) GPIO_PIN_RESET) { // 按钮按下低电平HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); // LED亮} else {HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); // LED灭}
} 7. 编译与下载 编译工程点击IDE的 Build 按钮。 烧录程序连接开发板点击 Load 下载代码。 8. 实验现象 按下按钮时LED亮松开时LED灭。 代码解析 HAL_GPIO_ReadPin()
HAL_GPIO_ReadPin 是STM32 HAL库中用于读取GPIO引脚输入电平状态的函数。通过调用此函数可以获取指定GPIO引脚的当前电平值高电平或低电平常用于检测按键、传感器信号、通信协议如I2C、SPI的输入状态等场景。
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
参数说明
参数类型说明GPIOxGPIO_TypeDef *GPIO端口如GPIOA、GPIOB等。GPIO_Pinuint16_t目标引脚编号如GPIO_PIN_0支持按位或组合
返回值
返回值类型说明GPIO_PinState引脚电平状态 - GPIO_PIN_SET高电平 - GPIO_PIN_RESET低电平。