stm32中定时器产生不同PWM的基本思路

stm32中定时器产生不同PWM的基本思路

ID:40566439

大小:31.00 KB

页数:4页

时间:2019-08-04

stm32中定时器产生不同PWM的基本思路_第1页
stm32中定时器产生不同PWM的基本思路_第2页
stm32中定时器产生不同PWM的基本思路_第3页
stm32中定时器产生不同PWM的基本思路_第4页
资源描述:

《stm32中定时器产生不同PWM的基本思路》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在stm32中利用定时器TIM调制PWM的几种方法:说说我的学习经历:从开始接触到现在有好几个月了,但是学习还是比较的费劲,而且速度也比较的缓慢,当然相比之前还是有很大的进步,记得刚刚学习的时候,建工程都是大四学长手把手教的。废话不多说先来讲讲定时器的配置:STM32F10系列最少3个、做多有8个定时器,都是16位定时器,且相互之间是独立的,计数范围为0x0000-0xffff,最大计数值为65535.可以用于测量输入信号的脉冲长度或者产生输出波形(输出比较和PWM)分为通用定时器,高级定时器,以及看门狗定时器下面主要讲通用定时器的配置问

2、题:以定时器TIM1为例:先进行函数的配置voidtimer1_config(){TIM_TimeBaseInitTypDefTIM_TimeBaseStructure;//开定时器1外设时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM1,ENABLE);//计时50000次时间为50000/10M=500msTIM_TimeBaseStructure.TIM_Period=50000;TIM_TimeBaseStructure.TIM_Prescaler=720-1;//720分频TIM_TimeB

3、aseStructure.TIM_ClockDivision=0;//时钟分割为0;//计数模式向上计数TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure)//初始化TIM1TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);//开启定时器中断TIM_Cmd(TIM1,ENABLE);//使能定时器}关于时间的计算问题:外设系统时钟的频率为72M,进行720分频

4、以后,频率f=72M/720=100khz.如果要定时0.1s则计数值为10000,计算公式为:时间(t)=计数值(n)/频率(f).注意计数值n介于0到65535之间有定时器则一定会有中断发生,所以要配置中断优先级,对于中断优先级函数配置如下:Voidnvic_config(){NVIC_InitTypDefNVIC_InitStructure;//抢占优先级为1位,从优先级为3位NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChann

5、el=TIM1_IRQn;//定义定时器1为请求通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//抢占式优先级为0NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;//从优先级为2NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//使能中断优先级NVIC_Init(&NVIC_InitStructure);//初始化中断}对于优先级中的抢占式和从优先级做如下解释:抢占式优先级:是可以抢

6、占的中断,比如正在执行的优先级为10的中断,突然来了一个优先级为5的中断,此时cpu会转向优先级为5的中断;从优先级:从优先级不会抢占正在执行的中断程序,但是如果两个事件同时发生,那么cpu会执行优先级高的事件,但是已经执行就不会再更改了,即使优先级比正在执行的高,这正好和抢占式优先级不同,抢占式优先级不论程序是否在执行,只要现在发生的中断优先级比正在执行的要高,就会更改。接下来写中断处理函数:VoidTIM1_IRQHandler(void){If(TIM_GetITStatus(TIM1,TIM_IT_Update)!=Reset)/

7、/接受到中断{TIM_ClearnITPendingBit(TIM1,TIM_IT_Update);//清除中断位功能模块1,需要实现的功能功能模块2.....}}功能模块中写上自己需要实现的功能至此,一个完整的定时器函数模块定义完成,下面我给大家写一下如何调制PWM,定时器中对于PWM的调制有几种状态,第一种频率占空比一定,第二种频率和占空比可以改变,第三种频率一定,占空比可以改变。先讲第一种情况:频率和占空比一定时的配置情况voidTim1_Configuration(void){TIM_TimeBaseInitTypeDefTIM_

8、TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;GPIO_InitTypeDefGPIO_InitStructure;/*PA8设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。