您的位置 首页 嵌入式

STM8L探究套件学习笔记-TIM定时器(五)

STM8L的定时器分:高级定时器TIM1,通用定时器TIM235,基础定时器TIM4。其中高级定时器和通用定时器都是16位定时器,不同之处高级定时器

STM8L的定时器分:高档定时器TIM1,通用定时器TIM2/3/5,根底定时器TIM4。其间高档定时器和通用定时器都是16位定时器,不同之处高档定时器有DMA功用,根底定时器是8位定时器,它们的更具体功用能够参阅阐明手册。

今日咱们运用根底定时器TIM4做一个延时的使命,选用两种办法完成:查询和中止的办法。

1查询的办法便是查询状况寄存器中的UIF位(update interrupt flag)是否置位,首要代码:

void delay_ms(u16 n_ms)

{

/* Init TIMER 4 */

CLK_PeripheralClockConfig(CLK_Peripheral_TIM4, ENABLE);

/* Init TIMER 4 prescaler: / (2^6) = /64 */

TIM4->PSCR = 6;

/* HSI div by 1 –> Auto-Reload value: 16M / 64 = 1/4M, 1/4M / 1k = 250*/

TIM4->ARR = 250;

/* Counter value: 2, to compensate the initialization of TIMER*/

TIM4->CNTR = 2;

/* clear update flag */

TIM4->SR1 &= ~TIM4_SR1_UIF;

/* Enable Counter */

TIM4->CR1 |= TIM4_CR1_CEN;

while(n_ms–)

{

while((TIM4->SR1 & TIM4_SR1_UIF) == 0) ;

TIM4->SR1 &= ~TIM4_SR1_UIF;

}

/* Disable Counter */

TIM4->CR1 &= ~TIM4_CR1_CEN;

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/260269.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部