按照有关教程,使用PWM的代码主要就是启用TIM中断和PWM,在中断回调函数中改变定时器的参数:![]() 在多位大佬的帮助下,找到了适用于C5的HAL库函数:
我在stm32c5xx_hal_tim.c文件中找到了中断处理函数:
在这个函数中找到了回调函数:
将这个回调函数复制:
然后添加了相应的代码:
其中更新定时器的值是通过这个函数实现的:
在调试过程中还发现中断冲突,造成串口发送的数据混乱:
后来将三个中断的优先级从高到低排列为:串口中断、定时器中断、按钮中断。这样串口发送就正常了:
上述代码编译通过了,但LED灯并没有按预期的点亮。我在回调函数内插入了printf()函数,在串口调试助手中没有收到信息,说明此回调函数并没有被执行。不知道现在是代码有问题还是配置存在问题。 |
【2026.09.27】每日签到:[STM32H735G-DK评测]一、移植Coremark跑个分
STM32C542RC开发板PWM实验的继续求助
STM32C542RC开发板PWM实验有关配置的求助
STM32C542RC开发板的串口DMA发送实验出错(已解决)
VS Code编译出错该如何解决?
测试USB线对STM32C542RC开发板的影响
关于我用PB0作为ADC采样,CUBEMX2是不是有问题啊
STM32 C5 swap bank功能
说说我今天使用CUBEMX2的感受
VSCODE编译stm32时一直显示正在配置
微信公众号
手机版
这是回调函数里添加的代码,其中的少数代码我也注释过进行测试:
猜测可能还是配置不正确,进入到MX2修改成如下的配置:
这样配置肯定还存在问题,因为编译下载后,程序停止在启用代码行,不会继续执行。