STM32 流水灯实验

如果两个灯在一个组则时钟无需增加 初始化时明确引脚可以

gpio_initstruct.Pin = GPIO_PIN_8 | GPIO_PIN_9; //用" | "来同时 这样无需重新初始化

以下为驱动LED.c的代码

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_PIN_9;                         //LED1、LED2对应的引脚
    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();
    led2_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);
}
//③点亮LED2的函数
void led2_on(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);    //RESET 为高电平

}
//④熄灭LED2的函数
void led2_off(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);      //SET 为低电平

}

//⑤翻转LED2状态的函数
void led2_toggle(void)
{
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);
}
相关推荐
Darth Nihilus2 分钟前
Raspberry Pi Compute Module Zero Development Board开发板(四)
linux·嵌入式硬件
我不是程序猿儿29 分钟前
【嵌入式】外部中断的学习小坑记录
单片机·嵌入式硬件·学习
学嵌入式的小杨同学29 分钟前
STM32 进阶封神之路(十三):空气质量传感器实战 ——KQM6600 模块从协议到代码(串口通信 + 数据解析)
c++·stm32·单片机·嵌入式硬件·架构·硬件架构·嵌入式实时数据库
2302_813806221 小时前
【单片机】—— 中断
单片机·嵌入式硬件·51单片机
网易独家音乐人Mike Zhou1 小时前
【嵌入式基础】Keil自动编译脚本及环境变量配置
c语言·stm32·单片机·51单片机·嵌入式·keil
Suifqwu1 小时前
stm32进阶-OTA升级功能的完善
stm32·单片机·嵌入式硬件
YY_Share1 小时前
主板STM32,GD32等MCU电路设计思维-状态提示
stm32·单片机·嵌入式硬件
bai5459361 小时前
智能呼吸灯
stm32·单片机·嵌入式硬件
taxunjishu1 小时前
EtherNet/IP 转 TCP/IP 网关方案助力工业自动化欧姆龙PLC产线设备互通
网络·物联网·自动化
唐山韩雅电气设备有限公司2 小时前
EOCR电动机保护器靠谱的厂家
python·单片机·嵌入式硬件