正点原子STM32F4的PWM程序设置时钟、周期频率问题的一点疑惑稍微瞎解释也许就自己勉强看懂。。。(改成了舵机控制程序)

本文详细解析了STM32F4使用正点原子探索者开发板进行PWM配置的过程,特别是针对定时器TIM14的初始化和占空比设置。通过TIM14_PWM_Init函数设置时钟频率和分频系数,得到10KHz的计数频率,进而计算PWM周期。TIM_SetCompare1函数用于设置占空比,改变CCRx寄存器的值以决定PWM的转折点,从而控制舵机或其他设备的工作状态。
摘要由CSDN通过智能技术生成

;/*20ms和2.5ms之所以此处有刚好X整数倍关系,,不一定是us和ms的整数转换倍数关系的原因是
    因为TIM14_PWM_Init(20000-1,84-1)中输入时钟频率84MHz和分频系数(84-1+1)除后为一个10KHz正是因为这个10KHz导致了定时器计数加一所耗费的时间为(1/10K)秒,,然后ARR中的值可以理解为多少个定时器加一的时间,如此这般相乘便是PWM的一个周期的时间也即为定时器溢出一次的时间,,,至于占空比设置所用的函数TIM_SetCompare1进入函数实现可以知道

void TIM_SetCompare1(TIM_TypeDef* TIMx, uint32_t Compare1)
{
// Check the parameters
  assert_param(IS_TIM_LIST1_PERIPH(TIMx));

// Set the Capture Compare1 Register value 
  TIMx->CCR1 = Compare1;
}

它是把他的参数传给TIMx->CCR1 寄存器,由正点原子书上的PWM原理示意图可以知道CCRx决定占空比,,个人把这里理解为和ARR为类比的一个级别的类似值,,也就是把CCRx的值拿去乘定时器计数加一所耗费的时间为(1/10K)秒,,所以如此便决定了PWM的转折点

 

*/

程序如下

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值