标题: stm32按键检测程序-外部中断(EXTI) [打印本页]

作者: tthfh    时间: 2025-4-14 14:49
标题: stm32按键检测程序-外部中断(EXTI)
stm32按键
#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "Key.h"

uint8_t Num;        //定义用于接收按键键码的变量
uint8_t ledCount = 0;
#define MAX_LEDS 5
void UpdateLEDs(void) {
    for (uint8_t i = 0; i < MAX_LEDS; i++) {
        if (i < ledCount) {
            GPIO_ResetBits(GPIOA, 1 << i);  // 点亮LED
        } else {
            GPIO_SetBits(GPIOA, 1 << i);    // 熄灭LED
        }
    }
}
int main(void)
{
    /*模块初始化*/
    LED_Init();        //LED初始化
    Key_Init();        //按键初始化

    while (1)
    {
        Num = Key_GetNum();        //获取按键键码
        
        if (Num == 1)            //按键1按下
        {
            LED1_Turn();
            //LED1翻转
        }
        
        if (Num == 2)            //按键2按下
        {    LED1_Turn();
            LED2_Turn();            //LED2翻转
        }
        /*if (Num == 3)            //按键2按下
        {LED1_Turn();
            LED2_Turn();
                LED3_Turn();        //LED2翻转
        }
        if (Num == 4)            //按键2按下
        {LED1_Turn();
            LED2_Turn();
                LED3_Turn();
        LED4_Turn();            //LED2翻转
        }*/
    if (Num == 3)            //按键2按下
        {if (ledCount < MAX_LEDS) {
                    ledCount++;  // 增加LED数量
                    UpdateLEDs();  // 更新LED状态
                }            //LED2翻转
        }
        if (Num == 4)            //按键2按下
        { if (ledCount >0) {
                    ledCount--;  // 增加LED数量
                    UpdateLEDs();  // 更新LED状态
                }            //LED2翻转
        }
    }
}

原理图: 无
仿真: 无
代码: 按键检测一外部中断(EXTI).7z (178.06 KB, 下载次数: 0)

作者: GlenXu    时间: 2025-6-6 09:01
注意PCB走线,STM32外部GPIO中断特别灵敏,容易收到外部干扰。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1