一、项目要求:
混合彩色呼吸灯,通过PC端串口小助手控制呼吸灯速率,开发板上按键控制呼吸灯的颜色。
二、设计说明:
三、效果示意图:
四、相关代码:
/********************************************************************************************************
******************************* 野火开发板STM32F429 LED呼吸灯 ********************************************
********************************************************************************************************/
#include "stm32f4xx_hal.h"
/*****************************************************************************************************
**************************** 基础定义 ***************************************************************
*******************************************************************************************************/
TIM_HandleTypeDef TIM5_Handler; //定时器5 PWM句柄
TIM_OC_InitTypeDef TIM5_CH1Handler; //定时器5 通道句柄
GPIO_InitTypeDef gpio_init;
UART_HandleTypeDef uart_handler;
uint8_t RxBUF[10];
int arr = 700;
uint8_t pdata[1];
int ccr = 1;
int ccr2 = 3;
uint32_t channel1;
uint32_t channel2;
/*****************************************************************************************************
**************************** LED初始化 *************************************************************
*******************************************************************************************************/
void LED_Init(void)
{
__HAL_RCC_GPIOH_CLK_ENABLE();
gpio_init.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12; //初始化引脚
gpio_init.Mode = GPIO_MODE_AF_PP; //复用推挽输出
gpio_init.Pull = GPIO_PULLUP; //不上下拉
gpio_init.Speed = GPIO_SPEED_FREQ_VERY_HIGH; //速度非常高
gpio_init.Alternate = GPIO_AF2_TIM5; //复用为定时器5(PH10-PH12 对应TIM5的CH1-CH3)
HAL_GPIO_Init(GPIOH , &gpio_init);
}
/*********