历史上的今天
返回首页

历史上的今天

今天是: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一次中断


推荐阅读

史海拾趣

Diconex公司的发展小趣事

在电子行业中,Diconex公司始终坚持以客户需求为导向的市场定位策略。公司深入调研市场需求,针对不同客户群体推出定制化解决方案。这种精准的市场定位使得Diconex的产品能够更好地满足客户需求,赢得了客户的信任和忠诚。同时,公司还积极拓展国际市场,与全球知名企业建立了长期稳定的合作关系。

Elec & Eltek公司的发展小趣事

随着市场需求的不断变化,Elec公司意识到单一产品已无法满足客户的多样化需求。于是,Elec公司开始寻求与同行业公司的合作。在一次行业交流会上,Elec公司的代表与Eltek公司的代表相识,并发现双方的产品具有很强的互补性。经过多次深入交流,Elec公司与Eltek公司决定开展合作,共同研发具有更高性能、更广泛应用的电子产品。这一合作不仅增强了双方的竞争力,也为客户提供了更多样化的选择。

Etron公司的发展小趣事

面对未来电子行业的发展趋势和挑战,钰创科技始终保持着清醒的认识和前瞻性的思考。公司将继续加大研发投入和人才培养力度,推动技术创新和产业升级;同时加强与国际知名企业的合作与交流,拓展国际市场;并积极响应国家政策和市场需求变化,不断调整和优化产品结构和市场布局;为实现公司的可持续发展和长远目标奠定坚实基础。

请注意,以上故事为虚构内容,旨在展示Etron公司(钰创科技)在电子行业中的发展历程和可能遇到的挑战与机遇。实际情况可能因各种因素而有所不同。

COMPEX公司的发展小趣事

COMPEX公司自成立以来,一直致力于电子技术的研发与创新。在光通讯领域,公司凭借先进的光通讯模块电路板小器件技术,逐渐在市场中占据了一席之地。COMPEX团队不断突破技术壁垒,推出了多款高性能、高可靠性的产品,赢得了客户的广泛认可。同时,公司还积极与国内外知名企业和研究机构合作,共同推动电子行业的技术进步。

宁波晨翔电子(CONNFLY)公司的发展小趣事

随着技术的不断积累和创新,晨翔电子在智能仪表、LED照明、无线网络等领域取得了显著的技术突破。公司不仅成功研发出多款具有竞争力的产品,还积极拓展国内外市场,与多家知名企业建立了长期稳定的合作关系。这一时期的成功,为晨翔电子的后续发展奠定了坚实的基础。

DMS Electronic Components, Inc公司的发展小趣事

DMS深知品质对于企业的重要性,因此从一开始就建立了严格的质量管理体系。公司采用先进的生产设备和工艺,对每一个环节都进行严格把关,确保产品质量符合国际标准。DMS还积极参与国际认证,通过ISO9001、CE、UL等认证,进一步提升了品牌的国际竞争力。

问答坊 | AI 解惑

这段是在运算什么?

有哪位高手能看懂下边程序在做什么? MOV   A,4AH                        MOV   R0,A           &n ...…

查看全部问答>

研华PCL 816

第一次调试板卡,我想了解一下板卡是怎么初始化的,还有通道的选择以及AD转化的触发,数据的读取等。 为什么每次读取AD数据后,BASE+13的DRDY位仍为0啊?…

查看全部问答>

《Linux驱动入门》学习

一、典型linux驱动代码包含?     驱动程序的注册和注销、 设备的打开和释放、 设备的读写、 设备的控制操作、 设备的中断或轮询处理。     二、BootLoader     Bootloader操作系统内核运行之前运行的一 ...…

查看全部问答>

自已做的STM32F103ZET6的板调完了!

                                 SRAM.NOR,NAND都好用了!晚上回家上图片!…

查看全部问答>

IAR5.30使用J-LINK下载程序时的怪问题

一直以来有这个问题..今天突然想问一下.. 现在使用的UCOS+UCGUI的程序编译大概有250K. 忘了从什么时候起, 就不能直接用IAR的J-LINK直接下载程序了. 需要先用J-FLASH擦除.断电.再用IAR下. 如果芯片内有程序在跑,直接使用IAR下载的话.程序不能 ...…

查看全部问答>

有哪位大虾知道低通椭圆滤波器怎么设计?

本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 求助啊,有哪位大虾知道低通椭圆滤波器截止频率10m(或其他)怎么设计? 用有源好还是无缘好? 无源本身电阻电容等影响大不?  …

查看全部问答>

关于Xilinx调用IPcore 与 原语的区别

Xilinx FPGA中有的可以通过原语(Primitives)调用来例化一些特殊功能,比如: ODDR2、IOBUF、ISERDES2、OSERDES2等。   有的可以用IP core来例化一些特殊功能,比如: DCM、加法/减法器 等。   有两个问题想跟各位高手讨论: &nb ...…

查看全部问答>

【TI文献】DLP案例评估-Classromm 3D案例研究

DLP案例评估-Classromm 3D案例研究,欢迎大家下载! …

查看全部问答>

LM3S9B95程序无法下载

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收费开发资料,光盘自带的开发文档还不错,希望对大家有用,贡献出来做方案参考,希望对大家有帮助。受限于上 ...…

查看全部问答>