STM32普通定时器配置PWM的问题


oid TIM3_Init(void)

{

TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

TIM_OCInitTypeDef  TIM_OCInitStructure;

/* PWM信号电平跳变值 */

//    u16 CCR1= 36000;

//    u16 CCR2= 36000;

/*PCLK1经过2倍频后作为TIM3的时钟源等于72MHz*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

/* Time base configuration */

TIM_TimeBaseStructure.TIM_Period =1599;                                     //计数周期1600

TIM_TimeBaseStructure.TIM_Prescaler = 1;                                    //设置预分频:预分频=2,即为72/3=24MHz

TIM_TimeBaseStructure.TIM_ClockDivision = 0;                                //设置时钟分频系数:不分频

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;                 //向上计数溢出模式

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

/* PWM1 Mode configuration: Channel1 */

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                           //配置为PWM模式1

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse =600;                                       //设置跳变值,当计数器计数到这个值时,电平发生跳变

TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_Low;                    //当定时器计数值小于CCR1时为高电平

TIM_OC1Init(TIM3, &TIM_OCInitStructure);                                    //使能通道1

TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

/* PWM1 Mode configuration: Channel2 */

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = 300;                                       //设置通道2的电平跳变值,输出另外一个占空比的PWM

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;                    //当定时器计数值小于CCR2时为低电平

TIM_OC2Init(TIM3, &TIM_OCInitStructure);                                    //使能通道2

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

TIM_ARRPreloadConfig(TIM3, ENABLE);                                         //使能TIM3重载寄存器ARR

/* TIM3 enable counter */

TIM_Cmd(TIM3, ENABLE);

Delay_8ms();

TIM_Cmd(TIM3, DISABLE);

}

时间: 2024-09-30 02:20:09

STM32普通定时器配置PWM的问题的相关文章

STM32通用定时器配置

一.STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生.其它6个为普通定时器,时钟由APB1的输出产生. 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分. 下面以通用定时器2的时钟说明这个倍频器的作用:当APB1的预分频

STM32 高速定时器配置为PWM使用细节

//初始化TIM8 Channel1 PWM?模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; // TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // //TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; // TIM_OCInitStructure.TIM_OCPolarity = TIM_OC

Stm32高级定时器(三)

Stm32高级定时器(三) 1 互补输出和死区插入 1.1 死区:某个处于相对无效状态的时间或空间 本来OCX信号与OCXREF时序同相同步,OCXN信号与OCXREF时序反相同步.但为了安全考虑,以OCXREF为参考基准,OCXN和OCX通道将理论上本该导通的时间点往后延时一下,即做从截止切换到导通状态的延时. 特点: ● OCx输出信号与参考信号相同,只是它的上升沿相对于参考信号的上升沿有一个延迟. ● OCxN输出信号与参考信号相反,只是它的上升沿相对于参考信号的下降沿有一个延迟. 1.2

STM32 通用定时器的几种配置方式

STM32 通用定时器的几种配置方式 //------------------------------------------------------------------------------ // 1.普通定时使用 #include"stm32f10x.h" #include"time.h" static Time_NVIC_Config( void ) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_SetVecto

STM32基础问题分析——PWM配置

在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X参考手册>的中文翻译可能容易造成歧义,所以一开始并没有理解,这里就梳理一下我的理解,如果有误解的情况,希望交流指正. 1. 遇到的问题 先直接上段配置代码,这段代码是产生一个20kHz固定频率,50%固定占空比的方波信号,典型的配置过程,一般来说也不会有什么太多的疑问.但是我逐步了解背后的定时器工作逻辑的时候,就产生了一些疑问,也没有找到合

STM32定时器输出PWM频率和步进电机控制速度计算

1.STM32F4系列定时器输出PWM频率计算 第一步,了解定时器的时钟多少: 我们知道AHP总线是168Mhz的频率,而APB1和APB2都是挂在AHP总线上的. (1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线(2)通用定时器timer2~timer5,通用定时器timer12~timer14以及基本定时器timer6,timer7的时钟来源是APB1总线 从STM32F4的内部时钟树可知: 当APB1和APB

stm32高级定时器的应用——spwm

用过stm32定时器的朋友都知道,定时器的CCR寄存器,可以用来配置PWM的输出,但同样也可以用来配置spwm.废话不多说,直接上代码. 首先,你得考虑一下几个因素: 1.同步调制还是异步调制.  2.载波比N设置为多少 3.spwm计算法 4.prescaler和period的值 5.改变CCR还是改变ARR 下面是程序的大致情况: 1.使用同步 2.载波比设置为N = 360 3.采用对称规则采样法 4.通过中断时实改变CCR的值 5.使用stm32f429,它的高级定时器时钟频率为180M

Stm32高级定时器(一)

Stm32高级定时器(一) 1 定时器的用途 2 高级定时器框图 3 时基单元 4 通道 1 定时器的用途 已知一个波形求另一个未知波形(信号长度和占空比) 已知波形的信号长度和占空比产生一个相应的波形 增量正交编码器驱动电机获得动态信息(速度.加速度) 测量输入信号的脉冲宽度(输入捕获) 产生输出波形(输出比较.PWM.嵌入死区时间的互补PWM等) …… 我们知道,当我们需要测量一段直线的长度时,我们需要一把直尺,根据直尺上的刻度读出直线的长度,定时器也相当于直尺能够测量和产生特定的波形. 比

Stm32高级定时器(二)

Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控制信号(TRGO). 从模式:复位模式, 在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化:同时,如果IMx_CR1寄存器的URS 位为低,还产生一个更新事件UEV :然后所有的预装载寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了. 从模式:门控模式, 计数器的使能依赖于选