STM32HAL库 呼吸灯
单片机:STM32F103C8T6
软件版本:STM32CubeMX 4.20.1
单片机固件包:STM32Cube_FW_F1_V1.4.0
本代码是STM32F103C8T6最小系统板上PC13脚LED灯的呼吸灯代码。希望能给各位读者些许帮助。
led.c代码:
/*************************************************
// 文件说明: led呼吸灯代码
// 创 建 人: mnWu522
// 日期: 2020-1-8
// 修 改 人:
// 修改日期: 20xx-xx-xx
*************************************************/
#include "led.h"
#include "common.h"
#include "tim.h"
//LED引脚初始化
void LED_GPIO_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
LED_GPIO_CLK_ENABLE();
GPIO_InitStruct.Pin = LED_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LED_GPIO_PORT,&GPIO_InitStruct);
LED_OFF();
}
//LED呼吸灯
void LED_Breathing(void)
{
for(int i=1; i<=100; i++)
{
for(int j=1;j<=i;j++)
{
LED_ON();
Delay_us(400);
}
for(int j=1;j<=100-i;j++)
{
LED_OFF();
Delay_us(400);
}
}
for(int i=1; i<=100; i++)
{
for(int j=1;j<=100-i;j++)
{
LED_ON();
Delay_us(400);
}
for(int j=1;j<=i;j++)
{
LED_OFF();
Delay_us(400);
}
}
}
led.h代码:
#ifndef __LED_H__
#define __LED_H__
#include "stm32f1xx_hal.h"
///
#define LED_GPIO_PORT GPIOC
#define LED_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
#define LED_PIN GPIO_PIN_13
#define LED_ON() HAL_GPIO_WritePin(LED_GPIO_PORT, LED_PIN, GPIO_PIN_RESET)
#define LED_OFF() HAL_GPIO_WritePin(LED_GPIO_PORT, LED_PIN, GPIO_PIN_SET)
#define LED_TOGGLE() HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN)
///
void LED_GPIO_init(void);
void LED_Breathing(void);
#endif