SMT32的PWM波形输出配置总结

发布者:万童洁最新更新时间:2023-11-02 来源: elecfans关键字:SMT32  PWM 手机看文章 扫描二维码
随时随地手机看文章

本文分享STM32之PWM波形输出配置总结。

一. TIMER分类:

STM32中一共有11个定时器,其中TIM6、TIM7是基本定时器;TIM2、TIM3、TIM4、TIM5是通用定时器;TIM1和TIM8是高级定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick。

6e0b1500-b1d5-11ed-bfe3-dac502259ad0.png

其中TIM1和TIM8是能够产生3对PWM互补输出,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。

二、PWM波形产生的原理:

通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出、PWM输出功能时,捕获/比较寄存器TIMx_CCR被用作比较功能,下面把它简称为比较寄存器。

这里直接举例说明定时器的PWM输出工作过程:若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR被配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。

而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR预先存储了的数值A进行比较,当脉冲计数器TIMx_CNT的数值X小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平),相反地,当脉冲计数器的数值X大于或等于比较寄存器的值A时,输出低电平(或高电平)。

如此循环,得到的输出脉冲周期就为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM的占空比为 A/(N+1)。

三、STM32产生PWM的配置方法:

1、配置GPIO口:

配置IO口的时候无非就是开启时钟,然后选择引脚、模式、速率,最后就是用结构体初始化。不过在32上,不是每一个IO引脚都可以直接使用于PWM输出,因为在硬件上已经规定了用某些引脚来连接PWM的输出口。下面是定时器的引脚重映像,其实就是引脚的复用功能选择:

a.定时器1的引脚复用功能映像:

6e22f7a6-b1d5-11ed-bfe3-dac502259ad0.jpg

b.定时器2的引脚复用功能映像:

6e388ff8-b1d5-11ed-bfe3-dac502259ad0.png

c.定时器3的引脚复用功能映像:

6e499104-b1d5-11ed-bfe3-dac502259ad0.png

d.定时器4的引脚复用功能映像:

6e577c7e-b1d5-11ed-bfe3-dac502259ad0.png

根据以上重映像表,我们使用定时器3的通道2作为PWM的输出引脚,所以需要对PB5引脚进行配置,对IO口操作代码:

GPIO_InitTypeDef GPIO_InitStructure;//定义结构体

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外设和AFIO复用功能模块时钟

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //选择Timer3部分重映像    

//选择定时器3的通道2作为PWM的输出引脚TIM3_CH2->PB5    GPIOB.5

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽功能

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化引脚

2、初始化定时器:


TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;//定义初始化结构体

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定时器3时钟

//初始化TIM3

TIM_TimeBaseStructure.TIM_Period = arr; //自动重装载寄存器的值

TIM_TimeBaseStructure.TIM_Prescaler =psc; //TIMX预分频的值

TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据以上功能对定时器进行初始化

3、设置TIM3_CH2的PWM模式,使能TIM3的CH2输出:


TIM_OCInitTypeDef  TIM_OCInitStructure;//定义结构体

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//选择定时器模式,TIM脉冲宽度调制模式2

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//输出比较极性低

TIM_OC2Init(TIM3, &TIM_OCInitStructure);//根据结构体信息进行初始化

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能定时器TIM2在CCR2上的预装载值

4、使能定时器3:


TIM_Cmd(TIM3, ENABLE);  //使能定时器TIM3

经过以上的操作,定时器3的第二通道已经可以正常工作并输出PWM波了,只是其占空比和频率都是固定的,我们可以通过改变TIM3_CCR2,则可以控制它的占空比。修改占空比的函数为:


TIM_SetCompare2(TIM3,n);  //n不同,占空比不同。

5、修改pwm波形的占空比:

编写一个函数:


void TIM3_PWM_Init(u16 arr,u16 psc);

将以上所有的代码都加进来这个函数中,只要在main函数中调用该函数进行初始化,然后使用TIM_SetCompare2()函数修改PWM的占空比就可以在PB5脚得到需要的PWM波形了。关于频率以及占空比的计算方法有以下例子:


int main(void)

{

TIM3_PWM_Init(9999,143);//频率为:72*10^6/(9999+1)/(143+1)=50Hz

TIM_SetCompare2(TIM3,4999);//得到占空比为50%的pwm波形

while(1);

}


关键字:SMT32  PWM 引用地址:SMT32的PWM波形输出配置总结

上一篇:RT-Thread使用cjson软件包发送64位长整型数据
下一篇:采用STM32F103VET6处理器实现数字式电镀电源并联均流系统的设计

推荐阅读最新更新时间:2024-10-29 13:14

亚瑟莱特推出AX3023系列PWM电源管理IC
亚瑟莱特科技推出AX3023系列Tiny Package PWM电源管理IC。AX3023系列为一颗脉波宽度调变输出1安培的异步直流降压转换器,输入电压范围可由最低4.5伏特到最高28伏特,输出电压可以依需要调整最低可以至0.75伏特,非常适合于数码相框,数字机顶盒,网络通信的CPE device等装置的电压转换方案。 AX3023系列应用上可提供高转换效能及稳定的工作电压,其内部具有短路保护(SCP),过电流保护(Current-limit Protection)及过温度保护(Thermal Shutdown Protection)功能,切换频率固定为200KHz。 AX3023采用标准
[电源管理]
亚瑟莱特推出AX3023系列<font color='red'>PWM</font>电源管理IC
COOLMOS器件在开关电源中的应用研究
1 主要特点 Infineon Technologies 公司的ICE2A165/265/365系列芯片是新型COOLMOS器件,该器件是PWM控制器和MOSFET开关管组合为一体的功率器件,它的主要特点如下: ●FET耐压为650V,导通电阻低; ●无需散热器即可输出较大的功率; ●具有过、欠压保护、过热保护、过流保护和自恢复功能; ●待机状态及空载时能自动降低工作频率,从而降低损耗; ●最低工作频率为21.5kHz,可以避免可闻噪声; ●电路结构简单,所需外部电路元件少,可大大减少开关电源的体积和重量,提高系统的可靠性。 由于ICE2A165/265/365系列芯片具有以上诸多特点,因而可广泛用于中、低
[电源管理]
噪声扰人烦 PWM稳压电源帮你抑制噪声
PWM型开关稳压电源优点有很多,比如效率高、体积小等等,因此PWM作为电源设备在很多领域都有广泛的应用。但是,开关三极管的工作状态转换持续期短、频谱甚宽的尖峰干扰是其致命弱点,它不仅影响开关电源本身,而且还会干扰邻近的其它电子设备。开关稳压电源工作时开关三极管和续流二极管(亦可以是另一个开关三极管)总是交替地导通或者截止,图1中KQ和KD并非是理想器件,两种状态的转换需要一定的时间,这就产生了尖峰干扰。在状态转变过程中,该导通的开关没有完全导通,而该截止的开关却又没有截止的瞬间,电源到地有直接的通路,产生瞬态电流Is。该电流跟开关三极管导通时的电流Imax及截止时的电流Icmin的差值、开关KQ和KD同时导通的持续时间等因素有关。
[电源管理]
噪声扰人烦 <font color='red'>PWM</font>稳压电源帮你抑制噪声
基于STM32的PWM呼吸灯系统设计
一、简述 记--使用定时器4输出PWM来实现呼吸灯效果。 在人眼辨识能力范围内,调节LED亮的时间,达到LED灯的亮度不同。例:给低电平LED就亮,如果一个脉冲中全是低电平那么LED最亮,如果一个脉冲一半是高电平,一半是低电平,那么LED就显得有点暗,这样调整脉冲中的高低电平的比例就可以达到LED的亮度调节。 二、效果 LED1逐渐由暗变亮,接着由亮变暗。 三、工程结构 四、源文件 #include stm32f4xx.h #include led.h #include pwm.h //粗延时 void delay_ms(int ms) { int i,j; for(i=0; i m
[单片机]
基于STM32的<font color='red'>PWM</font>呼吸灯系统设计
STM8单片机PWM应用
PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。本例程通过电位器调整PWM脉宽来调整接在PD3的LED1亮度。 #include void CLK_init(void) { CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M } void GPIO_init(void) { PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出 } void TIM2_init(void) { TIM2_CCMR2 = 0x70; // PWM模式 2 TIM2_CCER1 = 0x30; // CC2配置为输出 TIM2_
[单片机]
降压型PWM控制器APl510原理及应用
引言   随着信息技术与集成电路的高速发展,电子产品逐渐向智能化、小型化、低功耗方面发展,同时电源必须做到小体积、高效率、低功耗,以适应电子产品的高速发展。因此,高度集成的PWM控制器在电子产品中得到了广泛应用。   易亨(AnachiD)电子公司推出的降压型PWM控制器APl510可以广泛应用于电子产品的电源中。由于APl510芯片内包含基准电压源、振荡电路、误差放大器、内部PMOS开关管等电路,所以只须外加电感、电容、二极管等少量元器件,便可组成小体积、高效率的降压型开关稳压电源。   l APl5lO的工作原理   APl510的原理框图如图l所示。      1.1 引脚功能及描述   脚1 (FB)反馈端,
[模拟电子]
降压型<font color='red'>PWM</font>控制器APl510原理及应用
PWM恒流充电系统的设计
    摘要: 一种好的蓄电池充电方法是分级恒流充电。分析了PWM控制DC/DC变换的原理,给出了一种基于IGBT功率器件、单片机控制新型蓄电池恒流充电系统的设计方法,并对该系统进行了试验,给出了试验结果。     关键词: Buck变换器 PWM IGBT 80C196KC 蓄电池正常充电时,比较好的充电方法是分级定流方式,即在充电初期用较大的电流,充到一定的时间后,改用较小的电流,至充电后期改用更小的电流。这种充电方法的效率高,所需充电时间较短,充电的效果也好,并且对延长电池的使用寿命有利。     针
[应用]
三相四桥臂逆变器的PWM控制策略
与其他三相逆变器相比,三相四桥臂全桥逆变器具有体积小、重量轻、成本低的优点,因此具有很好的应用价值。该逆变器控制策略主要有空间矢量控制法和滞环控制法,其中对空间矢量控制法的研究较为深入。三维空间矢量控制法虽然具有电压利用率高、控制灵活、效率高等优点,但其空间矢量图抽象,难以理解,控制时需进行坐标变换,且开关矢量带有根号,控制较为复杂。滞环控制法的控制思想简单,易于理解,但该方法用于四桥臂逆变器时,需对各相误差电流大小进行判断,从而决定第四桥臂两开关管的开关状态。因此,控制的实时性和精度受到了影响。 此处研究了一种零序电流注入的PWM控制策略,该控制策略能实现三相四桥臂逆变器的解耦控制,且控制方法简单,易于理解和实现。与常规的正弦波
[电源管理]
三相四桥臂逆变器的<font color='red'>PWM</font>控制策略
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved