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

(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/(721)=1MHz

P W M 时 钟 周 期 = 1 / P W M 频 率 = 1 u s PWM时钟周期= 1/PWM频率=1us PWM=1/PWM=1us

扫描二维码关注公众号,回复: 12852997 查看本文章

计 数 器 周 期 = P W M 时 钟 周 期 ∗ ( 2000 − 1 ) = 2 m s 计数器周期= PWM时钟周期*(2000-1)=2ms =PWM20001=2ms

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

猜你喜欢

转载自blog.csdn.net/m0_46278925/article/details/113543567