//=====================================================================
//TITLE:
// STM32F10x的定时器使用
//AUTHOR:
// norains
//DATE:
// Thursday 16-September-2010
//Environment:
// NULL
//=====================================================================
Cortex-M3核心有个和以往的ARM所不同的特性,就是其有个定时器特性,可以非常方便地进行定时器中断的设置。具有同样核心的STM32F10x自然也有这个本领,所以我们现在就来看看定时器应该如何使用吧!
首先要确定最小和最大间隔。最小间隔很简单,直接设置为1ms即可;而最大间隔则有点麻烦,需要通过计算。其计算的代码如下:
SYSTICK_MAXCOUNT为定时器的最大记数,在CMSIS/Core/CM3/core_cm3.h文件中可以找到,定义为:
SystemFrequency为芯片的频率,这个是根据不同的芯片有不同的数值,其定义在CMSIS/Core/CM3/system_stm32f10x.c能够找到。如果CPU的频率为72MH,那么定义为:
如果是56MHz,那么定义则变更为:
对于其它的频率,也是以此类推。
那么回头看看公式的由来。因为SystemFrequency / 1000得到的结果刚好为1ms,而SYSTICK_MAXCOUNT则是定时器重新加载的最大节拍数,故两者相除即可得到最大的时间间隔。
让定时器正常工作很简单,直接调用SysTick_Config函数即可。不过,这个函数的接受的形参并不是时间,而是节拍,所以这里需要进行转换。根据前面的知识,可以很容易推断出和时间间隔所对应的节拍数:
根据此公式,可以得出SysTick_Config的调用方式:
其中uiInterval为时间间隔,单位为ms。成功设置并调用该函数之后,定时器就开始正常工作了。
分享到:
相关推荐
STM32F10x 定时器实验:TIM2定时器中断&TIM3 PWM 输出实验
本程序是使用谁STM32F103C8T6单片机 工作在72MHz主频下的程序,主要用来学习定时器的启动方法,用定时器来输出2.5ms的方波。全程测试,可放心运行。使用V3.5的库 有一小部分程序和V3.0有差别,请自行研究
stm32f10x 通用定时器
这是一个STM32F103CB开发板的定时器中断测试程序。
STM32F10X定时器程序可以看下。
使用讲解请见作者的博客,有相关详细的说明。
stm32F10x系列单片机通用定时器利用库函数配置详细过程
STM32F103 UCOS实战。 项目支持STM32F10X系列单片机调测和移植。 项目代码可直接编译、运行。
STM32F103驱动程序,资源内包含三种驱动实现方式:寄存器驱动、库函数驱动和HAL库驱动。 项目支持STM32F10X系列单片机调测和移植。 项目可直接编译、运行。
STM32F103驱动程序,资源内包含三种驱动实现方式:寄存器驱动、库函数驱动和HAL库驱动。 项目支持STM32F10X系列单片机调测和移植。 项目可直接编译、运行。
资料挺好的,STM32的定时器整理很齐全,有需要的可以看看。学习定时器时配合手册一起学习,挺有用的,详细
中断程序入门 定时器配置
CPU: Stm32F101C6 (or Stm32F10x) 编译器: IAR ARM 4.42A 备注: 没有用到编译器或CPU厂商的接口固件库函数 功能: 串口发送和接收。定时器, ADC采样等驱动 方便移植: 所有IO接口定义文件 "IoDrv.h
重新加深STM32F103系列通用定时器PWM和寄存器了解,结合“正点原子”相关教材和《STM32中文参考手册》,写了这篇关于定时器PWM的总结文档,防止自己忘记后有迹可查。
重新加深STM32F103系列通用定时器输入捕获和寄存器了解,结合“正点原子”相关教材和《STM32中文参考手册》,写了这篇关于定时器输入捕获的总结文档,防止自己忘记后有迹可查。
STM32F103 FreeRTOS实战。 项目支持STM32F10X系列单片机调测和移植。 项目代码可直接编译、运行。
stm32的定时器使用,可供初学者参考,方便理解和作为模板
重新加深STM32F103系列通用定时器中断和寄存器了解,结合“正点原子”相关教材和《STM32中文参考手册》,写了这篇关于定时器中断的总结文档,防止自己忘记后有迹可查。
适合初学者学习STM32F10X的通用定时器
STM32F103驱动程序,资源内包含三种驱动实现方式:寄存器驱动、库函数驱动和HAL库驱动。 项目支持STM32F10X系列单片机调测和移植。 项目可直接编译、运行。