硬件开发板:STM32G0B1RET6
软件平台:cubemax+keil+VScode
1 新建cubemax工程
1.1 配置系统时钟RCC
1.2 配置定时器
找到LED所对应的引脚PA5
,选择TIM2_CH1
模式
在TIM2
中,时钟源选择内部时钟Internal Clock
,通道1选择PWM输出PWM Generation CH1
,设置预分频系数63
和重装载值999
,此时对应时间周期是1ms
,占空比设置为0即可,后续通过软件进行修改
2 代码
2.1 定义变量
uint16_t pulse=0; /*占空比,重装载值设置为999*/
uint8_t flag=1; /*LED标志位,用于判断是渐亮还是渐灭*/
2.2 mian函数
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_TIM2_Init();HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1); /*启动定时器2通道1的PWM输出*/while (1){if (flag==1) /*执行LED渐亮*/{if (pulse<1000){pulse+=50; /*占空比增大*/__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse); /*修改占空比*/HAL_Delay(100);}elseflag=0; /*切换为渐灭模式*/}else /*执行LED渐灭*/{pulse-=50; /*占空比减小*/__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse); /*修改占空比*/HAL_Delay(100);if (pulse==0){flag=1; /*切换为渐亮模式*/}}}
}