43 lines
950 B
C
43 lines
950 B
C
//LED 库
|
|
|
|
#include "sys.h"
|
|
|
|
#include "led.h"
|
|
|
|
/**
|
|
* @brief LED 初始化,用于 LED2
|
|
*/
|
|
void LED_Init(void)
|
|
{
|
|
GPIO_InitTypeDef GPIO_Initure;
|
|
__HAL_RCC_GPIOA_CLK_ENABLE(); //开启 PA 时钟
|
|
|
|
GPIO_Initure.Pin = GPIO_PIN_1; //PA1
|
|
GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出
|
|
GPIO_Initure.Pull = GPIO_PULLUP; //上拉
|
|
GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //高速
|
|
HAL_GPIO_Init(GPIOA, &GPIO_Initure); //初始化 PA1
|
|
|
|
LED2_Off;
|
|
SysTick_StartTimer(LED2_SYSTICK_TIMER_ID, 50);
|
|
}
|
|
|
|
/**
|
|
* @brief LED2 慢速翻转,无阻塞,防止因调用过快导致无法观察
|
|
* @param led_num: 序号
|
|
*/
|
|
void LED_Slow_Toggle(uint8_t led_num)
|
|
{
|
|
switch (led_num)
|
|
{
|
|
case 2:
|
|
{
|
|
if (SysTick_CheckTimer(LED2_SYSTICK_TIMER_ID))
|
|
{
|
|
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
|
|
SysTick_StartTimer(LED2_SYSTICK_TIMER_ID, 50);
|
|
}
|
|
}
|
|
}
|
|
}
|