173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

stm32定时器1微秒

keros@mark 2023-03-17 资讯中心

STM32定时器的定时超时如何计算?与时钟有何关联

和定时器时钟关联的有总线APB1或APB2等时钟,定时器外设挂载在这个总线上使用的就是这个总线时钟,然后定时器配置时有个预分频值prescale可以设置分频,还有个时钟分割,这两个可以控制定时器计数的快慢。例如总线频率为72M,预分频值为71(自动+1,实际为72),那么现在的计数频率就是1M赫兹,也就是1微秒计一个数。假设时钟周期设置为1000,那么在1000个计数后(1ms时间)就会使溢出标志置位。

stm32怎么用定时器1s计数

void TIM3_Init(void)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

TIM_TimeBaseStructure.TIM_Period = 2999; //算出个这个周期来定时1s就完事了

TIM_TimeBaseStructure.TIM_Prescaler =10000;

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure);

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(NVIC_InitStructure);

TIM_Cmd(TIM3, ENABLE);

}

stm32的定时器怎么做1秒的周期

定义一个变量cnt,

然后设置定时器为100ms中断

在定时器中断中使之前定义的变量自增cnt++,

然后在主循环中判断cnt=10是否成立,

如果成立,则1秒时间到

本文标签:stm32定时器1微秒

产品列表
产品封装
友情链接