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);
}
相关推荐
叁散2 小时前
实验项目1 RFID 标签实验
单片机·嵌入式硬件
ting_zh5 小时前
定时器输出PWM信号同步控制传感器开关与 ADC 采样
stm32·tim·pwm·adc
比奇堡派星星6 小时前
MCU 裸机时间片调度系统
单片机·嵌入式硬件
安科瑞刘鸿鹏177 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
深圳市方中禾科技9 小时前
LED驱动芯片FZH02,应用开发相关数据技术手册
单片机·嵌入式硬件·led
第二层皮-合肥9 小时前
光耦瞬态响应特性:上升时间与下降时间的测试方法与误差分析
嵌入式硬件
yuanmenghao10 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
锻炼²12 小时前
USB 设备/配置/接口/端点/描述符 和 HID类请求详解
stm32·usb·hid·全速传输·sof包·中断传输
Arciab12 小时前
51单片机_蜂鸣器
单片机·嵌入式硬件·51单片机
SmartRadio12 小时前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora