|
我的STM32C542RC开发板PWM呼吸灯实验进行了一周多时间才基本完成,这除了对STM32CubeMX2的设置不熟悉外,最关键的就是不清楚中断回调函数名称,从网上搜索到的C5例程或视频几乎都是通过主循环来改变占空比的,至少我没有搜索到通过回调函数来改变占空比的。在论坛发布的求助贴,这个问题也没有得到有效的回应。最后我还是通过仔细阅读HAL库有关定时器的函数,功夫不负有心人,花费了几天时间终于找到了对应的回调函数,顺利地完成了PWM呼吸灯实验。下面具体介绍配置设置和代码编写的过程。 ! ?6 O x# p# s( [! H4 i$ I: }( K 一、STM32CubeMX2配置! q, E, V" L7 d 首先启用PA5引脚为TIM2通道1输出:
; c+ b: q6 M5 B% R TIM2设置预分频为143,计数方向为Up,计数周期为255,启用自动重装载:
激活Channel 1,通道方向选择输出,模式选PWM mode 1,启用Use channel和GPIO pin:3 _4 p* p f- @) R/ v4 g
启用Update event generation和Update interrupt flag(UIF) remap。5 M5 K, K9 ~1 m 启用中断功能Global interrupt,为了防止中断源对其它中断(如通讯中断)的影响,建议将中断优先级分组设为1:
保存设置并生成项目代码。 二、添加代码及编译下载 启用VS Code,在main.c函数中添加启用定时器的代码:" X/ H$ q" B* ?' `: ~! S
3 N" U f- s# t- F \7 f 添加中断回调函数:$ ?; P" q2 T- I% W8 W
1 X- ]+ b# c# Y7 E% }0 m# f 编译下载,在开发板上就可以观察到呼吸灯的效果。7 o! Z6 q `$ t1 @$ \$ l+ P* a' ~' h 这是呼吸灯效果的视频: |
【NUCLEO-C562RE】呼吸灯
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
STM32CubeMX2 学习分享:CubeMX2时钟树
《STM32CubeMX2 实战课程》学习笔记+从配置到工程移植的完整实践
STM32CubeMX2 学习分享:界面和配置体验升级
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
【NUCLEO-C562RE】OLED 显示
STM32CubeMX2 学习分享新建工程
STM32C542RC开发板的串口不定长数据接收实验
《STM32CubeMX2 实战课程》学习笔记——STM32C562RE开发测试
微信公众号
手机版