一、定时器节本分类和主要特点

1.STM32定时器分类:

1)看门狗定时器
2)SysTick定时器
3)RTC定时器

4)通用定时器
a)通用定时器TIM2~TIM5, 当中TIM2和TIM5是32位,TIM3和TIM4是16位
     具有四个独立通道
     中断/DMA事件
     支持增量编码器和霍尔传感器

b)通用定时器TIM9~TIM14,16位定时器
     最多具有连个独立通道
     中断事件

5)基本定时器TIM6,TIM7,16位定时器
     同步电路触发DAC
     中断/DMA事件

6)高级定时器TIM1。TIM8,16位定时器
    具有四个独立通道
    中断/DMA事件
    支持增量编码器和霍尔传感器
    
     输入信号能够改变计数器状态或复位
     可改变定期器寄存器的反复计数器。


二、实例1. 定时中断
    
1.时钟初始化
 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
 TIM_DeInit(TIM2);
   /* 时钟预分频数 */       //84000000/84=1000000,预分频后时钟为1M 
    
 TIM_TimeBaseStructure.TIM_Prescaler= (84 - 1);
 /* 自己主动重装载寄存器周期的值(计数值) */ /*
累计 TIM_Period个频率后产生一个更新或者中断 */
 TIM_TimeBaseStructure.TIM_Period =1000-1 ;  
/* 採样分频 */
 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
/* 向上计数模式 */ 
 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 
 //调用初始化函数 
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
 /* 清除溢出中断标志 */ 
 TIM_ClearFlag(TIM2, TIM_FLAG_Update);  
/*设置产生TIM_FLAG_Update中断*/        
 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
/* 开启时钟 */
 TIM_Cmd(TIM2, ENABLE); 

2. 设置中断向量。具体的解释见本博客有关“中断”部分的文章
 1)中断初始化
 NVIC_InitTypeDef NVIC_InitStructure;
 /* Enable TIM2 interrupt IRQ channel */ 
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);

 2)中断函数
 void TIM2_IRQHandler(void)
{
 static unsigned int cpu_counter = 0; 
 if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET)  
 {
  TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);
  cpu_counter ++;
  if(cpu_counter >= 500) //等闪烁的周期是1s
  {
   cpu_counter = 0;
   GPIO_ToggleBits(LED1);
  } 
 }
 
}

波形非常标准吧:)

STM32F407VG (五)定时器的更多相关文章

  1. 《MFC游戏开发》笔记五 定时器和简单动画

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...

  2. zigbee学习之路(五):定时器1(查询方式)

    一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...

  3. (笔记)Linux内核学习(八)之定时器和时间管理

    一 内核中的时间观念 内核在硬件的帮助下计算和管理时间.硬件为内核提供一个系统定时器用以计算流逝的时间.系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理. 墙上时间和系 ...

  4. 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...

  5. Python3-线程

    线程 什么是线程 线程的创建开销小 线程与进程的区别 为何要用多线程 多线程的应用举例 开启线程的两种方式 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 多线程并发的socket服务器 ...

  6. STC51六中中断配置点亮一个LED

    一.外部中断0.1(分别點亮一個LED) /****************************************************************************** ...

  7. 同步锁,死锁现象与递归锁,信息量Semaphore.....(Day36)

    一.同步锁 三个需要注意的点: #1.线程抢的是GIL锁,GIL锁相当于执行权限,拿到执行权限后才能拿到互斥锁Lock,其他线程也可以抢到GIL,但如果发现Lock仍然没有被释放则阻塞,即便是拿到执行 ...

  8. JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

    JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...

  9. 并发编程(十五)——定时器 ScheduledThreadPoolExecutor 实现原理与源码深度解析

    在上一篇线程池的文章<并发编程(十一)—— Java 线程池 实现原理与源码深度解析(一)>中从ThreadPoolExecutor源码分析了其运行机制.限于篇幅,留下了Scheduled ...

随机推荐

  1. PHPExcel读取文件日期处理,含时分秒(Thinkphp)

    我们使用PHPExcel读取excel文件后发现,时间都是类似于这样的数字:41890.620138889,那么如何将它处理成我们想要的2014-09-08 14:53:00这样格式的日期呢,看代码: ...

  2. 上传Android代码到gerrit服务器

    1. 配置default.xml default.xml是跟Android代码配套的,可参考google Android源码下的default.xml(.repo/manifests/default. ...

  3. [转]asp.net MVC 常见安全问题及解决方案

    本文转自:http://www.cnblogs.com/Jessy/p/3539564.html asp.net MVC 常见安全问题及解决方案 一.CSRF (Cross-site request ...

  4. 既可以输入也可以选择的input框

    datalist 是h5中既可以选择也可以输入的属性 具体代码如下 <input list="datalist"/><datalist id="data ...

  5. Android popupwindow和dialog监听返回键

    使用情况: 在activity中,出现了popupwindow和dialog,这个时候,如果点击返回键,它们消失了,但是一些操作还在继续.如:1.进行耗时操作,出现dialog提醒用户等待,这时,按下 ...

  6. Hash二次探测

    Hash的二次探测,当hash的长度为n:插入val,当Hash[val]不为0时,选择新地址newval = val +(-) 1*1,val+(-)2*2,val+(-)(n-1)*(n-1); ...

  7. 六时出行 App 隐私政策

    六时出行 App 隐私政策   本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义 ...

  8. 9-4前端vue面试的问题

    就没有什么顺序了,肖师傅的一些提问: 1- 配置文件中proxyTable的作用 2-@import '~styles/mixins.styl'  ~的作用 3-vue模拟的本地中访问地址的url带有 ...

  9. Windows Server 2008无法远程连接

    Server 2008 R2依次配置好之后,重启发现总是远程桌面时而连接不上.具体现象如下: 偶尔可以通过桌面远程连接连接到Server.以为是防火墙的问题,各种设置——甚至关闭,依然无法连接.反复重 ...

  10. CAD类型转换

    AcDbEntity *pEnt; AcDbCircle *pcir = AcDbCircle::cast(pEnt); static_cast<AcDbCircle*>(pEnt); p ...