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

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. python 生成器函数.推导式.生成器表达式

    一.生成器 什么是生成器,生成器的实质就是迭代器 在python中有三种方式来获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的转换也可以获取生成器 1 def func ...

  2. MVC系列学习(三)-EF的延迟加载

    1.什么叫延迟加载 字面上可以理解为,一个动作本该立即执行的动作,没有立即执行 2.从代码上理解 static void Main(string[] args) { //执行该语句的时候,查看sql监 ...

  3. JVM 优化之逃逸分析

    整理自 周志明<深入JVM> 1, 是JVM优化技术,它不是直接优化手段,而是为其它优化手段提供依据. 2,逃逸分析主要就是分析对象的动态作用域. 3,逃逸有两种:方法逃逸和线程逃逸.   ...

  4. 来自一个用户的体验-Alpha项目测试

    软件梦之队成员:201731062305 周蓉 这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 <软件梦之队>(附上团队博客 ...

  5. [转][IPC通信]基于管道的popen和pclose函数

    标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行. 这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程. popen函数还创建一个管道用于父子进 ...

  6. Android项目实战_手机安全卫士流量统计

    ## 1.抽屉控件SlidingDrawer:一定要配置android:handle(把手)和android:content(内容),并在子View中添加把手和内容的布局```java <Sli ...

  7. 项目管理01--使用Maven构建项目(纯干货)

    目录 1. Maven基础知识 2. Maven实战.开发.测试.打包.部署一个Web项目 一.Maven基础知识 Maven坐标 Maven提供了一个中央仓库,里面包含了大量的开源软件的jar包,只 ...

  8. Windows2008 Server 常规设置及基本安全策略

    一.系统及程序 1.屏幕保护与电源 桌面右键--〉个性化--〉屏幕保护程序屏幕保护程序 选择无更改电源设置 选择高性能选择关闭显示器的时间 关闭显示器 选 从不 保存修改 2.安装IIS 管理工具-- ...

  9. Twisted web开发教程

    最近在网上看到一篇twisted web开发文章,将它实践了一下,twisted 提供基本的url路由 和 控制器,模板与模型需要外部扩展 1.目录浏览 2.get请求 3.url路由 4.接受带参数 ...

  10. 5.21leetcode练习

    目录 两数之和 题目 答案 整数反转 题目 思路及答案 回文数 题目 思路及答案 希望每天进步一点点 两数之和 题目 新手司机上路,光荣翻车,没想出来.借了别人的答案,自行领会 答案 整数反转 题目 ...