[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%

 

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

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

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

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

当CCRx = 4时候,CNT自增,CNT<CCR时候输出高电平,因为ARR为8,那么占空比就为4/8= 50%

当CCRx = 8时候,CNT自增,CNT<CCR时候输出高电平,因为ARR为8,那么占空比就为4/8= 100%

当CCRx > 8时候,CNT自增,CNT<CCR时候输出高电平,一直输出高电平

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

 

Alternate functions: 复用功能

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

从数据手册可以看到stm32F407VET的TIM5对应的引脚有PA0(通道1)、PA1(通道2)、PA2(通道3)、PA3(通道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都是通用的定时器

 

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

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

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

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

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

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

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸幸有狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值