你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32C542RC开发板PWM呼吸灯实验

[复制链接]
老牛洋车 发布时间:2026-10-9 13:36
我的STM32C542RC开发板PWM呼吸灯实验进行了一周多时间才基本完成,这除了对STM32CubeMX2的设置不熟悉外,最关键的就是不清楚中断回调函数名称,从网上搜索到的C5例程或视频几乎都是通过主循环来改变占空比的,至少我没有搜索到通过回调函数来改变占空比的。在论坛发布的求助贴,这个问题也没有得到有效的回应。最后我还是通过仔细阅读HAL库有关定时器的函数,功夫不负有心人,花费了几天时间终于找到了对应的回调函数,顺利地完成了PWM呼吸灯实验。下面具体介绍配置设置和代码编写的过程。
+ }( {9 k$ D. v* F8 w! ?6 O  x# p# s( [! H4 i$ I: }( K

' K: \+ B- l" j6 P* i" ~3 R一、STM32CubeMX2配置! q, E, V" L7 d
首先启用PA5引脚为TIM2通道1输出:
" c: s; \5 D% g pwm01.png $ I. \8 g& p' l& g( Z
; c+ b: q6 M5 B% R
TIM2设置预分频为143,计数方向为Up,计数周期为255,启用自动重装载:
  ?% r8 }# N/ _' m" Z, C% S' I pwm02.png
0 [0 y/ Y) f8 J, n/ u1 t6 v9 E
) ]0 r, j. b3 g* w+ ^激活Channel 1,通道方向选择输出,模式选PWM mode 1,启用Use channel和GPIO pin:3 _4 p* p  f- @) R/ v4 g
pwm03.png 2 Y" T, c1 W$ i! R

1 c8 j, Y$ A. y启用Update event generation和Update interrupt flag(UIF) remap。5 M5 K, K9 ~1 m
启用中断功能Global interrupt,为了防止中断源对其它中断(如通讯中断)的影响,建议将中断优先级分组设为1:
, _2 u: @. Z3 T" J' t+ f pwm04.png
/ ^9 H2 W: r2 ~) [! ?( h
, E, E+ b, d7 Q' J" U" y$ l保存设置并生成项目代码。
. N7 V: h5 Z$ n4 i) @9 r* }5 ^6 o
# Q( Y; f5 U. I二、添加代码及编译下载
4 e+ i' R! _9 s/ ~* R8 h启用VS Code,在main.c函数中添加启用定时器的代码:" X/ H$ q" B* ?' `: ~! S
pwm05.png
6 {+ l5 i) o( q7 `3 N" U  f- s# t- F  \7 f
添加中断回调函数:$ ?; P" q2 T- I% W8 W
pwm06.png
5 D. g4 ^, \" C1 Y4 i; V. J1 X- ]+ b# c# Y7 E% }0 m# f
编译下载,在开发板上就可以观察到呼吸灯的效果。7 o! Z6 q  `$ t1 @$ \$ l+ P* a' ~' h
这是呼吸灯效果的视频:
$ D3 M1 a$ K8 |- U$ W6 ^" H0 Z" Z9 g2 ]
PWM_46.png
赞 收藏 评论0 发布时间:2026-10-9 13:36

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版