原创 STM32中利用通用定时器产生精确延时

2009-5-19 00:27 5791 6 7 分类: MCU/ 嵌入式
通用定时器是一个通过可编程预分频器驱动的16 位自动装载计数器构成。

先初始化

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

  TIM_TimeBaseStructure.TIM_Period = 1;                 //自动装载
  TIM_TimeBaseStructure.TIM_Prescaler = 7200;       //72M分频率到10KHz
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;   
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;  //向下计数
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 

延迟函数

void Delay(vu32 nCount)
{
  u16 TIMCounter = nCount;
  TIM_Cmd(TIM2, ENABLE);
  TIM_SetCounter(TIM2, TIMCounter);
  while (TIMCounter>1)
  {
    TIMCounter = TIM_GetCounter(TIM2);
  }
  TIM_Cmd(TIM2, DISABLE);
}
当 nCount =10000时候,精确延时1秒。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-2-26 09:26

这样会频繁的进中断
相关推荐阅读
用户1173172 2008-08-14 10:24
STM32上RTOS初探之一(Keil ARTX)
Keil ARTX(Advanced Real-Time eXecutive)是Keil为ARM 系列所提供的一个小型实时操作系统,整合于其UV3开发环境之中.在下载并安装了RealView MDK个...
用户1173172 2008-08-13 13:56
团购STM32开发板中的CAN收发问题
上周收到团购活动的开发板,经过简单点亮LED的程序后,开始调试板上的CAN通讯接口。首先运行配套光盘中的CAN例子程序,在自发自收工作模式下,一切正常。后来根据以往的经验,把程序中的自发自收模式改成普...
用户1173172 2008-08-01 16:23
CAN简介
在项目中计划采用CAN总线作为通信,因此特地又复习了一遍相关的资料,整理出了一些CAN的简单介绍,准备给项目组的有关人员做个培训。...
用户1173172 2008-07-31 23:25
基于STM32和RFID的节水控制系统
STM32项目/学习计划表项目名称 基于STM32和RFID的节水控制系统请点击以下链接更新您的个人资料(包括“职位,部门,单位名称,地址,邮编,电子邮箱,电话”),以便我们能及时联系您并快速发送开发...
我要评论
1
6
关闭 站长推荐上一条 /3 下一条