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

  • 格式:docx
  • 大小:9.75 KB
  • 文档页数:2

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 */