[STM32]个人学习笔记--通过C代码使用PWM

 

目录

什么是PWM

怎么知道IO口能不能配置PWM?

STM32F40X系列的数据手册和中文参考手册


什么是PWM

​        脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 ​

 PWM的频率:

是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);

也就是说一秒钟PWM有多少个周期
单位: Hz
表示方式: 50Hz 100Hz

pwm的周期:

T=1/f
周期=1/频率
50Hz = 20ms 一个周期

如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期

占空比:
是一个脉冲周期内,高电平的时间与整个周期时间的比例
单位: % (0%-100%)
表示方式:20%

[STM32]个人学习笔记--通过C代码使用PWM_第1张图片

 

怎么知道IO口能不能配置PWM?

[STM32]个人学习笔记--通过C代码使用PWM_第2张图片

使用单片机之前都得查看数据手册来看引脚的定义(目的是看默认复用的功能能不能使用PWM模式,可以简单理解复用功能就是这个一个单片机的引脚有多种功能,再结合参考手册

[STM32]个人学习笔记--通过C代码使用PWM_第3张图片

        脉冲宽度调制模式可以生成一个信号,该信号频率TIMx_ARR 寄存器值决定,其占空比则
TIMx_CCRx 寄存器值决定。
 

解析:上面就是设置PWM波其中的一个模式,CCR是可以设置占空比的,TIMx_CNT:计数器自增向上

当CCRx = 4时候,CNT自增,CNT

当CCRx = 8时候,CNT自增,CNT

当CCRx > 8时候,CNT自增,CNT

当CCRx = 0时候,一直输出低电平

 

Alternate functions: 复用功能

stm32F407VET6的TIM3对应的引脚有PA6(通道1)、PA7(通道2)、PB0(通道3)、PB1(通道4)。。等引脚自己可以查看数据手册的图。

从数据手册可以看到stm32F407VET的TIM5对应的引脚有PA0(通道1)、PA1(通道2)、PA2(通道3)、PA3(通道4)

[STM32]个人学习笔记--通过C代码使用PWM_第4张图片

        根据数据手册STM32F40X。Any of these general-purpose timers can be used to generate PWM outputs这一句话翻译:任何这些通用定时器都可以用来产生PWM输出

The TIM2, TIM3, TIM4, TIM5 general-purpose timers

上面这句话也表明了,定时器2到定时器5都是通用的定时器

 

[STM32]个人学习笔记--通过C代码使用PWM_第5张图片

我们通设置的是CCRx的值,就是设置占空比。过查看TIM_SetCompare()的定义就知道,

[STM32]个人学习笔记--通过C代码使用PWM_第6张图片

 assert_param()这个是一个传参的校验,看看传的参数是否正确。

---------------------------------------------------------------------------------------------------------------------------------

因为我现在在做小车,遇到了一些问题:下面的文字和图片仅仅我能看懂

后面接电机的时候也要注意电机的接法。

STM32F40X系列的数据手册和中文参考手册

链接:https://pan.baidu.com/s/1btQe4GRSqiAoeJLVnhQq7A 
提取码:06q3 
--来自百度网盘超级会员V4的分享

你可能感兴趣的:(STM32,stm32,单片机,嵌入式硬件)