按照有关教程,使用PWM的代码主要就是启用TIM中断和PWM,在中断回调函数中改变定时器的参数:![]() 在多位大佬的帮助下,找到了适用于C5的HAL库函数:
我在stm32c5xx_hal_tim.c文件中找到了中断处理函数:
在这个函数中找到了回调函数:
将这个回调函数复制:
然后添加了相应的代码:
其中更新定时器的值是通过这个函数实现的:
在调试过程中还发现中断冲突,造成串口发送的数据混乱:
后来将三个中断的优先级从高到低排列为:串口中断、定时器中断、按钮中断。这样串口发送就正常了:
上述代码编译通过了,但LED灯并没有按预期的点亮。我在回调函数内插入了printf()函数,在串口调试助手中没有收到信息,说明此回调函数并没有被执行。不知道现在是代码有问题还是配置存在问题。 |
有没有在STM32C542RC开发板上实现CoreMark测试的教程?
尝试进行STM32C542RC开发板的低功耗实验
STM32C542RC开发板启用PWM后对串口通讯造成影响
完成了STM32C542RC开发板PWM呼吸灯及多功能按键实验的视频
说说我今天使用CUBEMX2的感受
录制开箱上电和创建项目的视频挺麻烦啊
L9663驱动开发
STM32C5 AI 开发,选用 CubeMX+X‑CUBE‑AI 还是 STM32Cube AI Studio?
完成了STM32C542RC开发板的串口通讯实验的视频
STM32C542RC开发板PWM实验终于完成
微信公众号
手机版
最后还是通过仔细阅读库函数,找到了寄存器更新回调函数,成功地完成了PWM呼吸灯的实验。
这是回调函数里添加的代码,其中的少数代码我也注释过进行测试:
猜测可能还是配置不正确,进入到MX2修改成如下的配置:
这样配置肯定还存在问题,因为编译下载后,程序停止在启用代码行,不会继续执行。
上月我已经做好视频上传了,包括pwm的完整实现全过程。帖子还在审核中。。。
Stm32c542开发板测评:Stm32cubeMX2+VScode逐步完整展示实现心跳呼吸灯+串口收发+按键中断等功能 - STM32团队 ST意法半导体中文论坛 (stmicroelectronics.cn)