2501_93528148 2025-10-24 21:23 采纳率: 75%
浏览 5
已结题

stm32按下按钮LED不亮啊

1代码正确,直接用b站江协提供的源代码也不亮
2,LED正负连接正确
3,LED在别的程序是亮的
4,是不是按键的问题啊

img

img

img

img

img

img

img

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-10-24 21:26
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    根据你的描述,LED灯在别的程序中是亮的,且代码正确,LED连接正确。因此,问题很可能出在按键的引脚上。

    解决方案

    1. 检查按键引脚: 确保按键引脚是否正确连接到 STM32 的引脚上。
    2. 检查按键引脚的电压: 确保按键引脚的电压是否正确,是否有短路或开路。
    3. 检查按键引脚的引脚模式: 确保按键引脚的引脚模式是否正确,是否设置为输入模式。
    4. 检查按键引脚的中断: 确保按键引脚的中断是否正确设置,是否有中断函数。

    核心代码

    // 检查按键引脚的电压
    if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0) {
        // 按键按下
        LED_ON;
    } else {
        // 按键未按下
        LED_OFF;
    }
    
    // 检查按键引脚的引脚模式
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.Pin = GPIO_PIN_0;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    

    注意

    上述代码仅供参考,具体的代码可能需要根据你的项目和 STM32 的版本进行调整。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 10月24日