(一)CubeMX设置:
1. 晶振配置(72M)
2. 引脚配置
3. 配置及实现方式
(1)呼吸灯逐渐点亮控制
由上推出公式:
机器周期: (72MHz / 36) = 2MHz = 0.5us
PWM周期: 0.5 * 100 = 50us = 20kHz
呼吸灯逐渐点亮代码实现:
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 50-1);
while(1) {
HAL_Delay(30);
if(i > 100) i = 0;
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, i++);
}
(2)LED灯1秒亮灭控制
由上推出公式:
机器周期: (72MHz / 7200) = 10kHz = 100us
PWM周期: 100 * 10000 = 1s = 1Hz
LED灯1秒亮灭控制代码实现:
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 5000-1);
while(1) {
HAL_Delay(30);
if(i > 10000) i = 0;
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, i++);
}
|