历史上的今天
今天是:2025年01月31日(星期五)
2019年01月31日 | 【stm32f103】TIMER基本定时功能的使用(寄存器版)
2019-01-31 来源:eefocus
一.TIMER stm32框图

如图:
1为时钟源
● 内部时钟(CK_INT)
● 外部时钟模式1:外部输入脚(TIx)
● 外部时钟模式2:外部触发输入(ETR)
● 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以 配置一个定时器Timer1而作为另一个定时器Timer2的预分频器
本历程采用内部时钟源,也就是以下的path
此处需要注意一点:如果使用内部时钟,如果TIMER所在的总线是1分频,那么就是所在总线的时钟频率,如果不是1分频,那么时钟频率就是所在总线频率*2
如系统时钟为72M,TIMER2所在APB1为1分频,那么TIMER时钟频率为72M*1
如系统时钟为72M,TIMER2所在APB1为2分频,那么TIMER时钟频率为36M*2
虽然都为72M,但是计算方法也不同,对于频率系数比较大的就能看出差异,例如stm32 f407

2为时基单元
PSC预分频数,还有重装载值,计数器CNT是寄存器根据重装载值和方向进行递增递减
3为输入捕获,最基本的用途可以计算上升沿和下降沿的时间
4为输出,即PWM,可以自己输出波形,控制占空比
二.寄存器图

Timer的寄存器比较多,本历程只是实现最基本的定时功能,输入捕获,PWM暂时不做讨论
三.编程步骤
1. 使能TIMER时钟
2. 设置重装载值和分频系数
3. 计数器清零
4. 设置触发中断的方式
5. 使能TIMER
6. 使能TIMER NVIC中断
7. TIMER中断函数编写
四.程序解析
程序调用API
Time2_Enable(19999,7199);
调试如下
RCC->APB1ENR = RCC_APB1ENR_TIM2EN; // 72M clock
1.使能TIMER时钟,为72M,如图

TIM2->ARR= arr;
TIM2->PSC= psc;
2. 设置重装载值和分频系数,如图

TIM2->EGR = TIM_EGR_UG;
3.计数器清零
TIM2->CR1= TIM_CR1_URS;
TIM2->DIER= TIM_DIER_UIE;
4. 设置触发中断的方式
5.使能TIMER,如图:

NVIC_SetPriority(TIM2_IRQn,1);
NVIC_EnableIRQ(TIM2_IRQn);
6.使能TIMER中断
voidTIM2_IRQHandler(void)
{
TIM2->SR &= ~TIM_SR_UIF;
printf("timeout! CNDTR=%d\n",DMA1_Channel5->CNDTR);
}
7.编写TIMER中断函数
程序运行图

每2s产生一次中断
72M = 72000000HZ
分频7200
72000000/7200 = 10000
所以一个周期是 1/10000
然后出发中断时20000个周期,所以2s一次中断
史海拾趣
|
一、典型linux驱动代码包含? 驱动程序的注册和注销、 设备的打开和释放、 设备的读写、 设备的控制操作、 设备的中断或轮询处理。 二、BootLoader Bootloader操作系统内核运行之前运行的一 ...… 查看全部问答> |
|
一直以来有这个问题..今天突然想问一下.. 现在使用的UCOS+UCGUI的程序编译大概有250K. 忘了从什么时候起, 就不能直接用IAR的J-LINK直接下载程序了. 需要先用J-FLASH擦除.断电.再用IAR下. 如果芯片内有程序在跑,直接使用IAR下载的话.程序不能 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 求助啊,有哪位大虾知道低通椭圆滤波器截止频率10m(或其他)怎么设计? 用有源好还是无缘好? 无源本身电阻电容等影响大不? … 查看全部问答> |
|
Xilinx FPGA中有的可以通过原语(Primitives)调用来例化一些特殊功能,比如: ODDR2、IOBUF、ISERDES2、OSERDES2等。 有的可以用IP core来例化一些特殊功能,比如: DCM、加法/减法器 等。 有两个问题想跟各位高手讨论: &nb ...… 查看全部问答> |
|
IAR for ARM 6.10,J-Link仿真器4.22b,LM3S9B95 C5版本芯片。硬件图如附件。错误提示是AHBID错误?实在不明白了。仿真器没问题,连一个9B96的板子就没问题。请各位指点一下啊!… 查看全部问答> |
|
《STM32+WIFI+Linux+安卓智能控制开发板应用手册》 本帖最后由 微云电子 于 2014-9-11 19:34 编辑 购买的一套STM32+Linux+安卓智能控制开发板,这是一款带wifi和安卓客户端APP源码的STM32收费开发资料,光盘自带的开发文档还不错,希望对大家有用,贡献出来做方案参考,希望对大家有帮助。受限于上 ...… 查看全部问答> |




