完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
STM32定时器简介
STM32定时器有多种分为高级定时器、通用定时器、基本定时器 [tr]主要功能高级定时器通用定时器基本定时器[/tr]内部时钟源是是是 另外的三种特殊的定时器:独立看门狗定时器、窗口看门狗定时器、系统滴答定时器(集成在Cortex-MX内部的SysTick定时器) 计数模式 1.向上计数模式:控制寄存器TIMx_CR1中CMS等于00,DIR=0时选择向上计数模式。向上计数模式中计数器从零开始向上计数到自动装载值(TIMx_ARR计数器中),当计数溢出的时候产生一个计数器溢出时间。同时产生一个更新事件。在TIMx_EGR寄存器中设置UG位,同时产生一个更新事件。 2.向下计数模式:控制寄存器TIMx_CR1中CMS等于00,DIR=1时选择向下计数模式。向下计数模式中计数器从装入的值开始向下计数到0(该装入值为TIMx_ARR计数器的值),然后从自动装入的值重新向下计数,同时产生一个更新事件。在TIMx_EGR寄存器中设置UG位,同时产生一个更新事件。 3.中央对齐模式(向上向下计数模式):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后在从0开始重新计数。 在库函数开发中可以选择以下函数选择: TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;//例如计数模式选择向上计数模式 通用定时器的使用流程 1.中断设置 注意中断通道的选择根据不同的定时器。由于不同的定时器产生不同的中断请求,针对不同的定时器应该选择不同的中断通道。代码如下 NVIC_InitStructure.NVIC_IRQChannel = NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_InitStructure.NVIC_IRQChannelSubPriority = NVIC_InitStructure.NVIC_IRQChannelCmd = NVIC_Init(&NVIC_InitStructure); 2.定时器中断配置 STM32F103的高级控制定时器使用的是APB2,基本定时器和其他定时器使用APB1总线。预分频器可以将计数器的时钟频率按1到65536之间的任意值分频。它是基于一个(在TIMx_PSC寄存器中的)16位寄存器控制的16位计数器。因为这个控制寄存器带有缓冲器,它能够在运行时被改变。新的预分频器的参数在下一次更新事件到来时被采用。当预分频系数从1变成2时: 当预分频系数从1变成4时: 注意:在完成时基设置之后需要清除中断标志位以及使能TIM中断源。 TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInitStrue.TIM_Period=arr; //设置自动装载值 TIM_TimeBaseInitStrue.TIM_Prescaler=psc; //设置预分频系数 TIM_TimeBaseInitStrue.TIM_RepetitionCounter= TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue); TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //清除中断标志位 中断服务程序: void TIM3_IRQHandler(void)//该函数原型在启动文件中{ if(TIM_GetITStatus(TIM3,TIM_IT_Update)) { TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除定时中断标志 } } 相关计算公式(在系统时钟为72MHz情况下): TIM_Period*(TIM_Prescaler+1)/72000000 其中TIM_Period为计数值,TIM_Prescaler为预分频系数。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 13:52 , Processed in 0.815274 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号