STM32F429基于HAL库的PWM配置

本文介绍STM32微控制器中TIM3定时器的PWM输出配置过程,包括定时器初始化、PWM信号生成及通道配置等关键步骤。通过具体的.c文件代码实现,展示了如何设置自动重装值和时钟预分频数来生成特定频率和占空比的PWM信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.c文件

#include "pwm.h"
				  
// 	
//TIM4_PWM_Init函数,用于PWM输出
// 	 

TIM_HandleTypeDef TIM3_Handler;         //定时器3PWM句柄 
TIM_OC_InitTypeDef TIM3_CH1Handler;	    //定时器3通道2句柄

//TIM3 PWM部分初始化 
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数

void TIM3_PWM_Init(u16 arr,u16 psc)
{ 
    
    __HAL_RCC_TIM3_CLK_ENABLE();			//使能定时器3
    
    
    TIM3_Handler.Instance=TIM3;            //定时器3
    TIM3_Handler.Init.Prescaler=psc;       //定时器分频
    TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;//向上计数模式
    TIM3_Handler.Init.Period=arr;          //自动重装载值
    TIM3_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;	// 时钟分频因子
    HAL_TIM_Base_Init(&TIM3_Handler);
    HAL_TIM_PWM_Init(&TIM3_Handler);       //初始化PWM
	__HAL_TIM_CLEAR_IT(&TIM3_Handler,TIM_IT_UPDATE);		 // 防止一开启定时器就进入中断
	
    TIM3_CH1Handler.OCMode=TIM_OCMODE_PWM1; //模式选择PWM1
    TIM3_CH1Handler.Pulse=arr/2;            //设置比较值,此值用来确定占空比,默认比较值为自动重装载值的一半,即占空比为50%
    TIM3_CH1Handler.OCPolarity=TIM_OCPOLARITY_LOW; //输出比较极性为低 
    TIM3_CH1Handler.OCNPolarity=TIM_OCPOLARITY_HIGH;
    HAL_TIM_PWM_ConfigChannel(&TIM3_Handler,&TIM3_CH1Handler,TIM_CHANNEL_1);//配置TIM4通道2
		
}


//定时器底层驱动,时钟使能,引脚配置
//此函数会被HAL_TIM_PWM_Init()调用
//htim:定时器句柄
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
	
}





.h文件

#ifndef __PWM_H
#define __PWM_H

#include "sys.h"

extern TIM_HandleTypeDef TIM3_Handler;         //定时器4PWM句柄 
extern TIM_OC_InitTypeDef TIM3_CH1Handler;	    //定时器4通道2句柄
void TIM3_PWM_Init(u16 arr,u16 psc);


#endif



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值