简介:本项目为基于STM32F103R6为核心定时器点亮LED工程。在第一个任务里我们点亮LED是使用延时点亮。从这一讲我们开始学习真正的定时器使用方法,而这种方法是最接近实际应用的。实际应用中几乎不使用延时做任务,这是新手和有实际项目经验人员最明显的区别。

目的:学会定时器的配置,如何使用定时器的技术模式和分频设置。

一、Proteus仿真图

电路仍然是非常简单,只为了让同学们提高学习效率,减少学习时间。只连了两个LED灯。这次的变化只在软件上。

二、MED代码

//通用定时器中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值    计数到5000为500msTIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位TIM_ITConfig(  //使能或者失能指定的TIM中断TIM3, //TIM2TIM_IT_Update ,ENABLE  //使能);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设}void TIM3_IRQHandler(void)   //TIM3中断
{if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 {TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 LED0=!LED0;
//      LED1=!LED1;}
}

定时器的应用函数中真正需要改的只有一行LED0=!LED0;其他的都是所谓的套路。

那么在调用时如何修改其闪烁的频率呢?那么需要我们真正的了解定时器初始化函数了。

实际中我们配置的是    TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数5000,500ms

这个的算法太多教程写了很复杂的公式很难看懂。我这里说一个简单的思想大家理解一下,7199+1为分频系数,也就是把72mhz分成7200份,每份就是10000数,也就是1s10000个脉冲。那么如果我们计数了4999+1个脉冲,就是5000除以10000,为0.5s。

这么理解其实跟书上的公式一致的。

三、仿真效果和源代码资源

基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED-单片机文档类资源-CSDN下载

基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED相关推荐

  1. 基于Proteus无实物STM32入门自学教程(二)--LED流水灯

    本教程面向新手,前期没有用到stm32的内部库,源程序尽量使用单文件.方便从51直接转过来的同学有个适应期.proteus仿真stm32总所周知没有51仿真的那么完美.笔者在51年代进行仿真时基本与实 ...

  2. python海龟教程_Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环...

    条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...

  3. 站长在线零基础Python完全自学教程20:在Python中使用正则表达式完全解读

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第20课< 在Python中使用正则表达式完全解读>.本节课是一个大课,我分 ...

  4. 零基础Python完全自学教程15:Python中的列表

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第14课< Python中的列表 >.本节课是一个大课,我分了这些知识点进行 ...

  5. 零基础Python完全自学教程3:Python开发工具介绍

    欢迎你来到站长在线的站长学堂学习Python课程.今天<零基础Python完全自学教程>分享的主题是<Python开发工具介绍>. 作为一个Python程序员需要对一些常用的P ...

  6. 站长在线零基础Python完全自学教程18:Python中的集合完全解读

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第18课< Python中的集合完全解读>.本节课是一个大课,我分了这些知识 ...

  7. 零基础Python完全自学教程17:Python中的字典完全解读

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第17课< Python中的字典完全解读>.本节课是一个大课,我分了这些知识 ...

  8. 零基础Python完全自学教程11:Python中的选择语句

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础Python完全自学教程>今天给大家分享的是第11课<Python中的选择语句>.本节课主要内容有:最简单的if语句.if ...

  9. Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数

    什么样的程序员才是优秀的程序员?咪博士认为"慵懒"的程序员才是真正优秀的程序员.听起来不合逻辑?真正优秀的程序员知道如何高效地工作,而不是用不止境的加班来完成工作任务.函数便是程序 ...

最新文章

  1. 什么是textCNN? 能用来做什么?结构是什么?
  2. 【Machine Learning实验1】batch gradient descent(批量梯度下降) 和 stochastic gradient descent(随机梯度下降)
  3. Java SE 6 新特性: JMX 与系统管理(转载)-asp.net关注
  4. HDU 5037 Frog(2014年北京网络赛 F 贪心)
  5. MapReduce综合学习含Wordcount案例
  6. R7-9 模拟EXCEL排序 (25 分)
  7. Java 动态代理详解
  8. oracle输出对齐方式,sql*plus 中输出格式控制技巧
  9. mysql unix格式_将MySQL Unix-Timestamp格式转换为日期格式?
  10. 怎么自学python-你们都是怎么学 Python 的?
  11. CMD 命令 文件操作
  12. C++模板函数 学习记录
  13. Unity技术手册 - 形状(Shape)子模块 - Cone椎体和Box盒及Mesh、MeshRenderer、SkinnedMeshRenderer
  14. 河北工业大学c语言寻宝游戏,计算机技术基础(c语言)课程设计 寻宝游戏.doc
  15. sqlserver 人名_一个用来统计相同姓名人数的SQl语句_sqlserver
  16. 计算机运行黑屏显示器正常,详细教您电脑主机运行正常显示器黑屏怎么办
  17. 数据库考试内容(MYSQL)
  18. 山水盆景胶合时的留意问题
  19. C专家编程读书笔记一:C语言晦涩难懂的声明
  20. 国外有什么好的网站推荐?

热门文章

  1. 《万历十五年》段落摘抄
  2. 有你的小镇漫画下载[濑尾公治]
  3. 如何让matlab提速,[转载]matlab提速技巧(自matlab帮助文件)
  4. Soft-ICE使用说明及实例——破解ACDSee
  5. android录音实现
  6. foc 电流环解耦_FOC中电流环调试的宝贵经验总结(有理有据+全盘拖出)
  7. 2022新PHP赞/易支付系统源码+全新UI界面
  8. 计算机信息哲学认知逻辑,一书一法一工具|思维认知|你对我讲道理,我对你讲逻辑(推荐)...
  9. 网课答案查题微信公众号搭建教程
  10. VTK-vtkPointInterpolator/vtkInterpolatorKernel