实验目的:生成占空比可调的方波,控制led灯的亮度
实验现象:
1、开启外部晶振,配置成72Mhz
2、配置TIM定时器:
把预分频系数和计时器周期分别设置成71和99999,这样PWM波的频率就是100Hz。
我们的LED灯是接到PB5引脚上的,而TIM3的通道2是PB5引脚,所以我们把TIM3的通道2配置成PWM输出。
- /* USER CODE BEGIN 2 */
- HAL_TIM_Base_Start(&htim3); //开启TIM3
- HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); //开启通道2的pwm输出
- /* USER CODE END 2 */
-
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- #define DUTY_MAX 10000
- //亮度逐渐增加,从不亮到亮度最大需要0.5s
- for(int i=0; i<DUTY_MAX; i+=20)
- {
- __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, i); //设置通道2的占空比,i/DUTY_MAX就是占空比
- HAL_Delay(1);
- }
- //亮度逐渐减弱,从亮度最大到不亮需要0.5s
- for(int i=DUTY_MAX; i>0; i-=20)
- {
- __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, i);
- HAL_Delay(1);
- }
- /* USER CODE END WHILE */
-
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */