文章概览
cubemx设置
左侧Timers
里选择TIM
设置输出PWM,中间选择channel
点开选择PWM Generation CHx
,右面对应引脚就会亮起。
设置PWM输出频率通过下面的Prescaler
(PSC)和Counter Period
(ARR)
其中主频就是在Clock Configuration
中设置的
HAL库函数
1 | // 开启 |
注意最后一项是脉宽的绝对时长,并不是占空比,一般都是用 5~25 对应 0.5~2.5ms 的脉宽来控制舵机的角度 0~180°。
控制舵机或电调
设置频率
若pwm波频率不匹配,相差过大,可能不被识别。
一般控制舵机或电调频率为 50Hz,主频为72MHz,用上述公式计算可取 PSC=7200-1,ARR=200-1
电调行程初始化
pwm 频率为 50Hz
先不上电,给脉冲时长 2ms,一段时间后上电,然后改变脉冲时长为 1ms,电调会长滴,之后即可用 1.1~2ms的脉冲控制电机
控制蜂鸣器
有源蜂鸣器只是用来警报的,即上电就叫;无源蜂鸣器才能控制音调
用周期控制音调,音调与占空比无关
音符 | 对应频率(Hz) | 半周期时长(us) |
---|---|---|
1 | 523 | 956 |
2 | 587 | 851.5 |
3 | 659 | 758.5 |
4 | 698 | 716 |
5 | 784 | 637.5 |
6 | 880 | 568 |
7 | 988 | 506 |
对于这种频率不高的,用pwm改变频率就有另一种方法!——用延时手动控制
延时函数
1 | void delay_us(uint16_t time) |
怎么用蜂鸣器模仿人声,或者演奏和弦?怎么调pwm频率?皆不知
多想多做,发篇一作