stm32 点亮LED

第一步:

在Drives文件夹下的BSP创建LED.c文件,先编译一下从而创建.h 文件,在.h 文件下输入如下代码 中间一段void是LED.c 文件中的头文件。

cs 复制代码
#ifndef __LED_H__

#define __LED_H__

void led_init(void);
void led1_on(void);
void led1_off(void);
void led1_toggle(void);

#endif

第二步:

编写LED.c代码,代码包含以下几个内容

1.创建初始化的结构体 用于后续传入参数

2.初始化GPIO函数(包括时钟 __HAL_RCC_GPIOB_CLK_ENABLE(); ,调用GPIO初始化函数 几种常见函数看之前文章 HAL_GPIO_Init(GPIOB,&gpio_initstruct); ,关闭LED灯)

第三步:

包含1. 打开LED灯 2. 关闭LED灯 3. 翻转LED灯 写入高低电平主要用 GPIO的 此函数HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)

用于后续函数调用

第四步:在主函数中调用函数

以下为驱动LED.c 文件中的代码 (注意包含头文件led.h和sys.h)

cs 复制代码
#include "led.h"
#include "sys.h"

//①定义初始化结构体
    GPIO_InitTypeDef gpio_initstruct;
//②初始化GPIO函数
void led_init(void)
{
    //打开时钟
    __HAL_RCC_GPIOB_CLK_ENABLE();   //注意看硬件原理图中LED灯的引脚在哪一个组
    //调用GPIO初始化函数
    gpio_initstruct.Pin = GPIO_PIN_8;
    gpio_initstruct.Pull = GPIO_PULLUP;
    gpio_initstruct.Mode =GPIO_MODE_OUTPUT_PP;
    gpio_initstruct.Speed =GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB,&gpio_initstruct);
    //关闭LED灯
    led1_off();
    
}

//③点亮LED1的函数
void led1_on(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);    //RESET 为高电平

}
//④熄灭LED1的函数
void led1_off(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);      //SET 为低电平

}

//⑤翻转LED1状态的函数
void led1_toggle(void)
{
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_8);
}

主函数代码 要包含 时钟 延时 LED的头文件

cs 复制代码
#include "sys.h"
#include "delay.h"
#include "led.h"

int main(void)
{
    HAL_Init();                         /* 初始化HAL库 */
    stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */
    led_init();
//    led1_on();
//    led1_off();
    while(1)
    { 
       
       led1_toggle();
       delay_ms(500);

    }
}

  
相关推荐
碧海银沙音频科技研究院1 小时前
炬芯ATS3089X手表的HFP通话不自动路由到设备BT的问题解决
网络·人工智能·嵌入式硬件·算法
youcans_6 小时前
【STM32C5教程】(3)GPIO 按键输入实验
stm32·单片机·嵌入式硬件
俊基科技7 小时前
回音消不掉、底噪压不住、主板还对不上口?——A-59P 多功能语音处理模组技术解析
嵌入式硬件·回音消除·ai降噪模块
IT规划师8 小时前
MQTT实战 - 用了8年MQTT,我为什么还要重新系统啃一遍(一)
物联网·.net
IT规划师8 小时前
MQTT 生产实战 - 用了 8 年 MQTT,我为什么还要重新系统啃一遍(一)
物联网·mqtt·.net10
北京盛世宏博8 小时前
通信异常深度排查:以太网温湿度设备 TCP 粘包、UDP 丢包根治方案
单片机·网络协议·tcp/ip·udp·以太网·传感器·温湿度
蓝天居士9 小时前
PY32F系列MCU在串口接收时跑飞的根因分析(2)
单片机·嵌入式硬件
国产化创客9 小时前
ESP32音频/语音技术(4)AudioTools 库及转发播放程序分析
物联网·音视频·esp32
microrain11 小时前
读数是 1008,用电量是 8:SagooIoT 计算服务的增量口径与七种计算策略
物联网·golang·计算服务·sagooiot
wuyk55512 小时前
嵌入式驱动开发:量产级工程化实战(第9篇)——低功耗下的通信可靠性
c语言·驱动开发·stm32·单片机·嵌入式硬件