前言 用FreeRTOS内核来检测CPU使用率,需要用一个定时器来记录单片机运行时间。(STM32F407通用定时器标准库开发)1 W. a+ ?" k4 q1 a4 O& j 8 r8 H" E9 G" T4 M 一、如何配置定时器频率? 1.芯片手册中获取关键信息( L) L# e5 t6 f/ n8 D# f f 我的大致理解是:从RCC获取TIMxCLK频率的脉冲,在经过控制器,再通过预分频器控制CNT COUNTER递增等动作。2 z" Z0 t; O: G5 ~ 3 V9 l! ]! v$ i/ y 6 T2 }# H3 G: b5 s, w) W! Z+ ] 在手册里的时钟树里找到了APB总线给定时器提供时钟,我的F407用的TIM6,在APB1总线上(查手册系统架构可看)168Mhz的主频已经被4分频,, F6 w" y! Q" c5 b1 z$ |4 y 可知:现在TIMxCLK为84Mhz,我们定时器要获得20000hz即可。再配置预分频器即可。 下面开始操作起来 2.用标准库配置定时器3 ^: Y& n5 a6 S1 h( u, e: n 代码如下(示例):
这样就实现了定时器 20000Hz 中断。(中断部分未上传) ————————————————5 A, v6 _% R$ _7 _( w 版权声明:梦想当极客的小芦 ; W5 ]1 R9 r' @, v$ k |
定时器剩余通道是否可以做PWM输出呢?
基于STM32双定时器+ADC+DMA实战经验分享
基于STM32的定时器触发ADC时可能遇到的情形
【NUCLEO-U545RE-Q评测】5. 基本计时器
基于STM32的定时器不按设定超时产生中断
基于stm32用两个16位定时器级联成32位定时器经验分享
基于STM32利用TIMER事件和栈帧体验中断响应经验分享
基于STM32的Timer 结合 DMA 2D 通道实现不同波形输出
基于STM32软件定时器+中断方式模拟PWM经验分享
基于STM32高精度定时器中single-shot计数模式不工作