软件: 使用STM32CubeMX的一个好处就是图形化配置,在时钟配置方面,主要了解清楚高级外设总线(APB1、APB2)控制哪些外设。 (2)为了测试不同APB的时钟频率效果,在此选择了TIM1和TIM2,按下图配置 (3)为什么选择以上两个定时器作为例子?参考STM32F4XX中文参考手册,找到RCC相关内容,如图 (4)进入时钟配置,我的STM32F407开发板外部晶振是8MHz的,在 (6)设置NVIC,TIM1是高级定时器,选择更新中断,TIM2是通用定时器 (7)设置定时器 以TIM1为例,APB2时钟频率168MHz=168,000,000Hz,选取预分频系数(Prescaler)(16位存储,预分频系数最大65535)为16799,则定时器的时钟频率为168,000,000 / 16800 = 10000 Hz,频率为1万赫兹,选取计数周期(Counter Period,16位存储)为9999, 所以定时周期1s,同理TIM2也是同样计算,如果APB的时钟频率改变,一样安装上面的方法进行设置。 (8)生成SW4STM32工程,打开,在main函数里面while前启动定时器,如下代码 /* Infinite loop */ /* USER CODE BEGIN WHILE */ HAL_TIM_Base_Start_IT(&htim1);/启动定时器 HAL_TIM_Base_Start_IT(&htim2); while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */
(9)编写定时器中断
最后烧写到开发板实现预定效果,对定时器中断的详细视频介绍可以参考博主制作的相关视频,一个是在proteus仿真实现的,另一个是结合freertos实现的:https://www.bilibili.com/video/av63392182, https://www.bilibili.com/video/av63560586 |
|
来自: goodwangLib > 《HAL》