STM32CubeMx配置工程(三)-PWM呼吸灯

本文详细介绍了如何在CubeMx中配置PWM参数,包括预分频系数、自动重装载值,以及在Keil中通过HAL库实现PWM输出和定时器操作,展示了初始化GPIO和TIM4,以及控制PWM占空比和无限循环调整的代码片段。
摘要由CSDN通过智能技术生成

一.CubeMx配置

配置PWM的具体参数,预分频系数为 71,自动重装载值为 499,定时器溢出频率,即PWM的周期,就是 72MHz/(71+1)/(499+1) = 2kHz

二.重要代码(注意要开启PWM输出)

HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);  //开启PWM输出

__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,50);  //设置默认的占空比值

三.在keil中实现

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM4_Init();
  /* USER CODE BEGIN 2 */
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);					//一定要开启PWM通道的输出
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		for(int i=0;i<100;i++)
		{
			__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,i);
			HAL_Delay(20);
			
		}
		
		for(int i=0;i<100;i++)
		{
			__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,100-i);
			HAL_Delay(20);
		}
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值