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

STM32C542RC开发板PWM实验——编译通过但回调函数未调用

[复制链接]
老牛洋车 提问时间:2026-10-1 13:00 / 未解决
按照有关教程,使用PWM的代码主要就是启用TIM中断和PWM,在中断回调函数中改变定时器的参数:



在多位大佬的帮助下,找到了适用于C5的HAL库函数:
PWM_26.png

我在stm32c5xx_hal_tim.c文件中找到了中断处理函数:
PWM_18.png

在这个函数中找到了回调函数:
PWM_19.png

将这个回调函数复制:
PWM_20.png

然后添加了相应的代码:
PWM_25.png

其中更新定时器的值是通过这个函数实现的:
PWM_17.png

在调试过程中还发现中断冲突,造成串口发送的数据混乱:
PWM_22.png

后来将三个中断的优先级从高到低排列为:串口中断、定时器中断、按钮中断。这样串口发送就正常了:
PWM_23.png

上述代码编译通过了,但LED灯并没有按预期的点亮。我在回调函数内插入了printf()函数,在串口调试助手中没有收到信息,说明此回调函数并没有被执行。不知道现在是代码有问题还是配置存在问题。


PWM_21.png
PWM_24.png
赞 收藏 评论1 发布时间:2026-10-1 13:00

举报

1个回答
老牛洋车 回答时间:7 小时前
仔细分析了一下,添加的TIM启用的代码应该没有太大的问题:

PWM_24.png

这是回调函数里添加的代码,其中的少数代码我也注释过进行测试:
PWM_25.png

猜测可能还是配置不正确,进入到MX2修改成如下的配置:
PWM_29.png

这样配置肯定还存在问题,因为编译下载后,程序停止在启用代码行,不会继续执行。

所属标签

相似问题

官网相关资源

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