STM8L探索套件学习笔记-TIM定时器(五)
- 格式:docx
- 大小:9.75 KB
- 文档页数:2
STM8L探索套件学习笔记-TIM定时器(五)
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)= /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 */