stm32怎样实现不同定时器产生不同频率的PWM波?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32怎样实现不同定时器产生不同频率的PWM波?相关的知识,希望对你有一定的参考价值。

STM32怎么使用不同的定时器产生不同频率的PWM波?
求简单代码及原理~

参考技术A void TIM_Configuration(void)//TIM 初始化函数

TIM_OCInitTypeDef TIM_OCInitStructure;//通道输出初始化结构
//TIM3初始化
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseStructure.TIM_Period = 0xaaac; //周期0~FFFF
TIM_TimeBaseStructure.TIM_Prescaler = 3; //时钟分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //基本初始化

//TIM_ITConfig(TIM2, TIM_IT_CC4, ENABLE);//打开中断,中断需要这行代码
//TIM3通道初始化
TIM_OCStructInit(& TIM_OCInitStructure); //默认参数
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //工作状态
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //设定为输出,需要PWM 输出才需要这

TIM_OCInitStructure.TIM_Pulse = 0x2000; //占空长度
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //高电平
TIM_OC3Init(TIM2, &TIM_OCInitStructure); //通道初始化
TIM_Cmd(TIM2, ENABLE); //启动TIM3


***TIM_TimeBaseStructure.TIM_Period 这个周期,改变周期则改变频率,与时钟设置有关,
***TIM_OCInitStructure.TIM_Pulse 这个是占空比,
(以上需要包含合适的固件函数)
你只要做两个数组或一个静态变量,通过按键或其他触发方式,查数组或增减变量的方式改变F和D.本回答被提问者采纳

以上是关于stm32怎样实现不同定时器产生不同频率的PWM波?的主要内容,如果未能解决你的问题,请参考以下文章

STM32如何设置PWM波的频率为10HZ

怎样使stm32f4内部产生正弦波驱动wm8978发出声音

STM32怎么实现精确控制PWM输出数量同时能改变频率

怎么解决用stm32 发射2m方波,求大神!!!!!

怎样使用STM32准确的产生任意个数的脉冲信号

STM32 PWM设定输出