PWM 参数计算

时基单元:

![Snipaste_2023-12-18_21-35-40](C:\all study document\Microcontroller study\32\ 图片笔记 \Snipaste_2023-12-18_21-35-40.png)

跟 Keil51 一样,先进行预分频。

自动重装器:设置一个值 ARR,每次计数从 0 开始,计数到 ARR 后清零,计数 ARR+1 次

计数器 cnt:后根据内部时钟进行计数,每次和 CCR 捕获比较器进行比较;当 CNT<CCR 时,电平置为有效电平;同理,当 CNT>=CCR 时,置为无效电平,即为零;之后根据占空比进行电压的输出。

keil 中代码的讲述

void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);
void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2);
void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3);
void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4);

这个函数用来改变通道的占空比

void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

这个是用结构体来初始化输出


一。舵机不听指挥乱动

没有与单片机共地

舵机有三条线,分别是正负极和信号线 (用来输入 PWM 信号),因为舵机所需要的驱动电压比较大,一般在 6v 往上了,一般的单片机供电无法驱动舵机,就需要单独的外接电源供电,这时注意舵机地线不仅要和外接电源负极相连,还要与单片机共地,不然 PWM 信号输入后舵机会不听使唤乱动,因为 PWM 信号由单片机输入,舵机与单片机没有供地,舵机就没有参考电平,就会乱转。

PWM 需要和单片机共地,事实确实是这样

更新于

请我喝[茶]~( ̄▽ ̄)~*

bangdexuanyuan 微信支付

微信支付