pwm呼吸灯的实现
以stm32F407ZGT6为例
首先创建一个cubamx的工程,其配置过程如下
选择stm32f407zgt6芯片
选择rcc,高速外部时钟信号
配置sys
接下来选择需要进行呼吸灯的定时器和端口
f4的led对应PF9和PF10引脚
选择PF9,其对应的定时器在TIM14
就可配置PF9和TIM14
选择后已标亮PF9,只需在左键PF9选择TIM_14 CH1即可
时钟树配置最大频率168MHZ
接下来选择生成路径和IDE为MDK ARM即可
打开生成的工程
定义一个变量用以计算占空比
例如
uint16_t pwmval;
接着把
HAL_TIM_PWM_Start(&htim14,TIM_CHANNEL_1);
插入main函数中while之前
切记还要放到引脚和定时器初始化函数之后
否则无法看到呼吸灯的现象
最后在while中加入以下代码
for(pwmval=0;pwmval<=20000;pwmval+=20)
{ __HAL_TIM_SetCompare(&htim14,TIM_CHANNEL_1,pwmval);
HAL_Delay(20);}
for(pwmval=20000;pwmval>0;pwmval-=20)
{ __HAL_TIM_SetCompare(&htim14,TIM_CHANNEL_1,pwmval);
HAL_Delay(20);}
HAL_Delay(200);
下载编译没有问题后即可烧录