STM32U545有多达17个计时器,以及2个看门狗。不过可以给我使用的只有1-8,15-17,其中Timer1/8是高级控制计时器,而2-5则是通用计时器,6-7是基本计时器,15-17也是通用计时器,它和2-5的区别是它使用的是16位计数器,而后者是使用16位/32位计数器。所有计时器是相互独立的,不共享任何资源,因此可以独立配置和工作(当然也可以协同工作)。 本次通过通过STM32CubeIDE配置,并测试STM32U545环境下的TIM2基本定时功能,产生一个控制LED亮灭的信号(其实和PWM波类似,但是后面会测评将计时器专门作为PWM的工作模式)。 还是打开STM32CubeIDE,由于作为基本定时器时,不需要配置针脚,这一步可以跳过,但是需要配置具体的时间,这个时候就需要了解一下STM32U545的时钟树了: 根据参考手册,TIM2-7的外设时钟都是挂在了APB1上: STM32CubeIDE环境下,时钟树是这样的,因此我们可以知道时钟频率为4MHz: 虽然当前使用的是4MHz,但是最高可以支持到160MHz。另外可以看到,STM32U545除了常见的APB1和APB2之外,还有APB3等总线。 然后,在TIM2的配置下,我们需要填写分频数和重装值,从而确定中断的周期: 中断的频率是4MHz/(1+999)/(3999+1)=1Hz,也就是1秒触发一次,留意这个Counter Period,最大值是4294967295,这个是uint32能够表达的最大值,因此可知它是支持32位的重装值的。 然自然,要使能TIM2的中断: 接下来就是生成代码。 编写自己的代码则很简单, 几行就搞定了:
编译、下载运行以后,可以看到LED灯周期性亮灭。 当然,除了配置分频系数和重载值,前面可以发现整个系统的频率比较低,可以配置一下时钟树: 这个时候LED就会快速闪烁了。 |
STM32CubeIDE 快速入门指南
实战经验 | 基于 STM32U5 创建 USBx_CustomHID 通信
【STM32C0评测】5、娱乐一下,分享2048游戏
定时器剩余通道是否可以做PWM输出呢?
【STM32C0评测】4、SPI亮屏及GUILite移植
STM32U5 x E-BIKE,记录你的骑行多巴胺
基于STM32U5系列TIMER+DMA+DAC应用经验分享
【STM32C0评测】3、I2C使用
【STM32C0评测】1、开箱、环境搭建、按键点灯
【STM32C0评测】2、PWM实现呼吸灯
效果配个图更好
进来学习