STMCU小助手
发布时间:2022-4-25 21:24
|
7.4 使用定时器产生PWM输出& g0 y* @$ R# w7 l; A4 Z8 ] 7.4.1 配置PWM输出通道 返回到引脚配置系统中,这次我们选用TIM3作为PWM的产生定时器,在“TIM3”界面将“Clock Source”设为“Internal Clock”内部时钟,再将通道4设为“PWM Genration CH4”。 选用定时器3通道4的原因是它与开发板LED相连,方便查看PWM情况。/ K. @# q( ?8 `5 k! @" ~' Q3 I. h
接着进入TIM3的配置设置中(没显示出来的注意去刷新系统时钟)1 ~. Q# _ Q/ \1 ^; n" `
将系统分频设为480,得到1KHZ频率,将计数设为1000得到1000us的PWM周期。5 @0 ^7 ^2 j+ v0 G 频率 = 定时器时钟 / (Prescaler 预分频 + 1) / (Counter Period 计数值 + 1) Hz 占空比 = Pulse ( 对比值) / (C ounter Period 计数值) % 同时开启自动重载防止定时器溢出。点击保存并生成代码。8 X- _8 A9 Z! }( D5 e! w) o; U! p 7.4.2 PWM输出开启 在“NVIC.c”中,为中断函数初始化分别添加定时器3开启以及PWM占空比的代码即可。 ) O8 e$ ? K. E1 v+ ]& s. x
* V W0 V0 \% M! u R5 i9 Y 由于开发板是串联红色LED接电源的方式连接,高电平时电流不导通LED为灭,又因为红色LED发出的光强较强,因此需要高占空比才能用肉眼看出差距。因此这里将“HAL_TIM_SET_CMPARE”值设为990,相较于1000的计数值占空比即为99%,使得大部分时间IO口输出为高电平。, b5 o5 C' o* } A' C8 U: a) x 实际效果:6 T; @8 J7 w$ Q. h: Y! t# N3 R
' e& e* q c1 y+ @0 [! C- P5 L) k 附上程序:
q6 s+ r2 E8 G; D8 Q5 \ ; _7 P/ f' y$ C5 e |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版