当前位置: 首页 > >

(7)蓝桥杯嵌入式??定时器(PWM模式)

发布时间:



蓝桥杯嵌入式??定时器(PWM模式)
(1)个人*惯(2)准备(4)编写 void PWM_init(void) 初始函数(5)编写 void DealWith_0(void) 处理函数(6)问题


(1)个人*惯

会新建单独的 PWM.c 和 PWM.h 放到HARAWARE文件夹下


(2)准备

1、STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出

2、蓝桥杯大部分都会考TIM2,TIM3。出到的频率很高,几乎每年都会有PWM波的产生或PWM波的捕获这类的题型

3、TIM3如何配置PWM波。首先我们能看到CT117E开发板按键旁有一串引出来的IO口,分别是PA1~PA7。
在数据手册里找PA6、PA7可以复用为TIM3。对应着TIM3的通道1和通道2

4、但这篇的例程,因为没有示波器,为了更好观察PWM现象,则把输出映射到LED上
在数据手册可看到TIM3的通道3完全重映射到PC8,刚好对应LED1的引脚


(4)编写 void PWM_init(void) 初始函数


(5)编写 void DealWith_0(void) 处理函数


(6)问题

问题一:
本例程中计数器的计数周期为2ms,计算过程如下(其中-1,是其他原因所以必须减)





P


W


M














=


72


M


H


z


/


(


72


?


1


)


=


1


M


H


z



PWM时钟频率= 72MHz/(72-1)=1MHz


PWM时钟频率=72MHz/(72?1)=1MHz







P


W


M














=


1


/


P


W


M








=


1


u


s



PWM时钟周期= 1/PWM频率=1us


PWM时钟周期=1/PWM频率=1us






















=


P


W


M














?





2000


?


1





=


2


m


s



计数器周期= PWM时钟周期*(2000-1)=2ms


计数器周期=PWM时钟周期?(2000?1)=2ms


问题二:
1、使用PWM模式有一个缺点:同一定时器中,不同的通道下,输出的频率固定,占空比可变。
2、许多题目要你使用一个定时器,不同通道上让你产生不同频率,不同占空比的方波。
3、甚至还有题目让你产生相位不同的方波。
4、那么在这种情况下显然PWM模式时达不到这种效果的,我们就要换一种方式,这个就是下一部分的内容了。



友情链接: