(一)CubeMX设置:
1. 晶振配置(72M)
2. 引脚配置

3. 配置及实现方式
(1)呼吸灯逐渐点亮控制

由上推出公式:
机器周期: (72MHz / 36) = 2MHz = 0.5us
PWM周期: 0.5 * 100 = 50us = 20kHz
呼吸灯逐渐点亮代码实现:
//开启PWM输出
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
//设置默认的占空比值
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 50-1);
while(1) {
HAL_Delay(30);//延时30ms
//变量修改
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秒亮灭控制代码实现:
//开启PWM输出
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
//设置默认的占空比值
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 5000-1);
while(1) {
HAL_Delay(30);//延时30ms
//变量修改
if(i > 10000) i = 0;
//设置占空比值
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, i++);
}
版权声明:本文为qq_26043945原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。