STM32点亮一盏灯

STM32是一种基于ARM Cortex-M系列微控制器的芯片,常用于嵌入式系统开发。要在STM32上点亮一盏LED灯,你需要按照以下步骤操作:

  1. 硬件连接

    • 将LED的一端连接到STM32的GPIO输出引脚,另一端通常接地或接VCC(电源)。
    • 确保GPIO配置为推挽模式,以便提供足够的驱动电流。
  2. 软件配置

    • 在STM32的Keil MDK或CubeMX等集成开发环境(IDE)中,配置GPIO作为通用输入输出(GPIO GPIOx_y)。
    • 设置GPIO的模式为推挽输出(设置为AF_PP或AF_OD),并禁用中断。
  3. 初始化GPIO

    • 编写代码来初始化GPIO,比如设置GPIO的方向和功能,并允许对指定引脚进行输出操作。
  4. 点亮LED

    • 使用GPIO_SetBits()函数将对应的GPIO位设置为1,此时LED就会被点亮;如果想关闭LED,则用GPIO_ResetBits()函数将其设置为0。
  5. 编写主循环

    • 在while循环中,周期性地调用上述函数切换LED状态,如GPIO_ToggleBits()可以在每次循环中改变状态。

    #include "stm32f1xx_hal.h"

    void led_init(GPIO_TypeDef* GPIOx, uint16_t Pin)
    {
    GPIO_InitTypeDef GPIO_InitStruct;
    HAL_GPIO_Init(GPIOx, &GPIO_InitStruct);
    GPIO_InitStruct.Pin = Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
    GPIO_InitStruct.Pull = GPIO_NOPULL; // 无拉低
    HAL_GPIO_WritePin(GPIOx, Pin, GPIO_PIN_SET); // 初始点亮
    }

    int main(void)
    {
    STM32F103C8T6是我的STM32型号,假设GPIOA被选为LED控制GPIO
    LED_PIN = GPIO_PIN_0; // LED的GPIO引脚

    复制代码
     led_init(GPIOA, LED_PIN);
    
     while (1)
     {
         HAL_GPIO_TogglePin(GPIOA, LED_PIN); // 每次循环改变LED状态
         __HAL_Delay(500); // 等待500毫秒
     }
    
     return 0;

    }

相关推荐
沐欣工作室_lvyiyi1 小时前
采用AIOT技术的防疫物资监控系统的设计与开发(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·防疫物资
brave and determined1 小时前
硬件-电容学习DAY28——为什么尽量不选“钽电容”?
嵌入式硬件·硬件设计·电路设计·电子设计·钽电容·钽电容注意事项·钽电容设计
XCOSnTh3 小时前
单片机入门的相关工具XCOSnTh
c语言·单片机·嵌入式硬件·xcosnth·单片机入门
光子物联单片机4 小时前
STM32G474单片机开发入门(四)中断详解及GPIO外部中断输入
stm32·单片机·嵌入式硬件·mcu
逼子格5 小时前
【Proteus仿真】虚拟终端出现乱码问题解决
单片机·嵌入式硬件·proteus·嵌入式·硬件工程·电路仿真·虚拟终端
MAR-Sky7 小时前
单片机学习中的一些简单总结
单片机·嵌入式硬件·学习
点灯小铭7 小时前
基于stm32的物联网OneNet火灾报警系统
stm32·单片机·嵌入式硬件·物联网·毕业设计·课程设计
许商15 小时前
【stm32】【edgetx】解析链接脚本文件(ld)
stm32·单片机·嵌入式硬件
云山工作室17 小时前
基于单片机的三相逆变电源设计
单片机·嵌入式硬件·毕业设计·毕设
国科安芯19 小时前
ASP3605电源芯片关键指标测试说明
功能测试·单片机·嵌入式硬件·pcb工艺