五、【STM32 HAL库开发】TIM定时器:生成PWM波


实验目的:生成占空比可调的方波,控制led灯的亮度

实验现象:

一、CubeMX配置

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 */

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值