基于STM32利用按键点亮LED灯

基于STM32利用按键点亮LED灯的基本步骤:

(1)打开stm32CubeMX,创建新工程文件

(2)选择需要的芯片,本次实验采用的是STM32F411RETx

(3)黄色代表可被使用的引脚,绿色代表已被确定功能的引脚。左侧设置栏中的红色部分表示:IO口复用造成的重叠,以至不能继续使用。

(4)选好芯片,设置好相关系数参量后,选择与keil5相对应的MDK—ARM V5。

源程序:

1.按键按下LED灯点亮

int main
{
 if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == 0){
 
STM32实验中,通常使用按键控制LED的亮灭,这是一个基本的输入输出操作。以下是步骤概览: 1. **硬件连接**: - 将STM32的GPIO口配置为输出模式,用于驱动LED。 - 连接一个按键到GPIO的输入模式,当按键按下时,GPIO会检测到电平变化。 2. **软件设置**: - 使用STM32的Keil MDK或CubeMX等IDE编写程序。 - 编写主函数,初始化GPIO和中断系统(如果使用中断响应按键状态变化的话)。 3. **事件处理**: - 定义一个中断服务 Routine(ISR),当按键触发时被调用。 - 或者,在主循环中定期轮询按键的状态,如果按键按下,则点亮LED,松开则熄灭。 4. **代码示例**: ```c void ledInit(void) { GPIO_InitTypeDef GPIO_InitStructure; // 初始化LED GPIO口和按键GPIO口 GPIO_InitStructure.GPIO_Pin = LED_PIN; // LED的GPIO引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 输出推挽 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; HAL_GPIO_Init(LED_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BUTTON_PIN; // 按键的GPIO引脚 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_In_FLOATING; // 浮空输入 HAL_GPIO_Init(BUTTON_PORT, &GPIO_InitStructure); } void EXTI0_IRQHandler(void) { // 示例:假设按钮在EXTI线0上 if (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN) == GPIO_PIN_RESET) { // 按钮按下,点亮LED HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); } else { // 按钮松开,熄灭LED HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值