书签 分享 收藏 举报 版权申诉 / 20
上传文档赚钱

类型面向物联网的嵌入式系统开发-17-STM32定时器应用开发课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4941508
  • 上传时间:2023-01-27
  • 格式:PPTX
  • 页数:20
  • 大小:871.21KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《面向物联网的嵌入式系统开发-17-STM32定时器应用开发课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面向 联网 嵌入式 系统 开发 17 STM32 定时器 应用 课件
    资源描述:

    1、CC2530和STM32嵌入式接口技术开发5.3 STM32定时器应用开发EducationSolutions目录ContentsInternet+定时器基本原理STM32定时器项目场景项目实践11:27/3定时器介绍定时/计数器是一种能够对时钟信号或外部输入信号进行计数的器件,当计数值达到设定要求时便向CPU提出处理请求,从而实现定时或计数功能的外设。定时/计数器包含3个功能,分别是定时器功能、计数器功能和PWM输出功能,分析如下。对规定时间间隔的输入信号的个数进行计数,当计数值达到指定值时,说明定时时间已到。定时器功能 对任意时间间隔的输入信号的个数进行计数。计数器功能 对规定时间间隔的输

    2、入信号的个数进行计数,根据设定的周期和占空比从I/O口输出控制信号。PWM脉冲宽度调制输出功能11:27/4STM32的定时器介绍STM32F407拥有8个定时器,其中TIM6和TIM7是基本定时器,TIM2、TIM5、TIM9TIM14是通用定时器,TIM1和TIM8是高级定时器。基本定时器TIM6TIM7通用定时器TIM2TIM5TIM9TIM14高级定时器TIM1TIM811:27/5基本定时器原理1.定时器时钟源来自内部时钟,频率为90MHz。2.定时器控制器控制时钟的复位、使能、计数等功能。3.计数器分频器执行控制,时钟分频、时长装载、定时器计数。执行完成触发事件。11:27/6高级

    3、定时器原理1.定时器时钟源2.定时器控制器3.定时器时基单元4.输入捕获入口5.定时器输出比较6.定时器断路功能11:27/7基本定时器配置流程 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE)时钟使能 void TIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct);初始化定时器参数 void TIM_Cmd(TIM_TypeDef*TIMx,FunctionalState NewState)使能定时器根据基本定时器的硬件结构图可知,

    4、定时器首先通过内部时钟获取时钟源,经过控制器配置后,控制器进行对分频器和重装载寄存器的管理,基本定时器的配置流程也遵循这个过程。首先是初始化时钟获取时钟源,接着就是对控制器进行配置,配置完成后使能时钟即可。11:27/8定时器初始化结构体参数typedef struct /结构体关键字uint16_t TIM_Prescaler;/定时器预分配系数参数uint16_t TIM_CounterMode;/定时器计数方式参数uint16_t TIM_Period;/定时器计数周期配置参数uint16_t TIM_ClockDivision;/定时器时钟分频系数uint8_t TIM_Repetit

    5、ionCounter;/定时器的重复计算器 TIM_TimeBaseInitTypeDef;/结构体名对于库函数的结构体而言要用通用性,但针对定时器本身又有各自的特点,其中重复计算器在基本定时器中是无需配置的。11:27/9定时器初始化配置TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;/初始化定时器结构体TIM_TimeBaseStructure.TIM_Period=5000;/配置重装载寄存器为4999TIM_TimeBaseStructure.TIM_Prescaler=8999;/配置预分频系数为8999TIM_TimeBaseStruct

    6、ure.TIM_ClockDivision=TIM_CKD_DIV1;/配置时钟分频为1分频TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/配置向上计数TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);/初始化基本定时器配置重装载寄存器为4999,寄存器存满4999则重置。预分频系数设置为8999是由于基本定时器内部时钟为90MHz,经过8999+1分频后时钟为10000Hz,即一个周期时间为(4999+1)/10000=0.5秒。两次循环计数后就是1秒。11:27/10定时器使能 T

    7、IM_Cmd(TIM3,ENABLE);/使能TIM3外设void TIM_Cmd(TIM_TypeDef*TIMx,FunctionalState NewState);基本定时器相关信息配置完成后还需要开启定时器,开启定时器后定时器才能正常工作。11:27/11定时器外部中断配置 void TIM_ITConfig(TIM_TypeDef*TIMx,uint16_t TIM_IT,FunctionalState NewState);配置定时器中断事件 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);使能中断标准基本定时器使能后还需要将定时器使用起来,使用定时器

    8、的脉冲信号就是通过中断来实现的,基本定时器每循环计数一次就会触发一次中断,在这个中断服务函数中进行中断操作即可。11:27/12定时器外部中断的检测与清除 ITStatus TIM_GetITStatus(TIM_TypeDef*TIMx,uint16_t)中断状态判断 void TIM_ClearITPendingBit(TIM_TypeDef*TIMx,uint16_t TIM_IT)清除中断标志位定时器中断在触发后程序进入到中断服务函数,在中断服务函数中需要判断中断事件,有时定时器中断可能设置多个中断事件,因此判断中断状态是很有必要的。在执行完中断操作后清除中断标志位,下一次中断事件触发

    9、才能够正常进行。11:27/13项目场景随着人类科技文明的发展,人们对于时钟的要求在不断地提高。电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能,被广泛应用于生活和工作当中。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下时钟的数字化、多功能化己经成为现代时钟生产研究的主导设计方向。11:27/14任务目标使用STM32处理器实现电子时钟,主要是通过芯片内部的定时器提供准确的秒信号,从而确保时间长时间保持准确。本项目将围绕这个场景展开对嵌入式定

    10、时器外设的学习与开发。电子时钟程序功能设计主要是通过STM32处理器的定时器外设实现每秒产生一次脉冲信号,使用I/O接口连接的信号灯的闪烁来表示定时器产生的秒脉冲。11:27/15项目分析本项目的中断是对定时器的理解和学习,在理解过程中重点理解定时器的时间计算方式、定时器时钟源的来源和依据。弄清这两点后对时钟源的时钟频率和分频系数进行计算,就可以得到确定的时间配置重装载寄存器为4999,寄存器存满4999则重置。预分频系数设置为8999是由于基本定时器内部时钟为90MHz,经过8999+1分频后时钟为10000Hz,即一个周期时间为(4999+1)/10000=0.5秒。两次循环计数后就是1秒

    11、。11:27/16项目程序逻辑流程图程序首先声明一个静态变量,然后初始化LED和定时器及其中断,初始化完成以后程序进入循环体,依据静态变量的变化来改变LED的亮灭状态。静态变量的变化在定时器中断服务函数中进行。11:27/17项目实现初始化TIM3void timer3_init(unsigned int period,unsigned short prescaler)/TIM_Period为16位的数TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;/定时器配置 NVIC_InitTypeDef NVIC_InitStructure;/中断配置 RC

    12、C_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;/TIM3中断通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;/抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;/子优先级1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/使能中断 NVIC_Init(&NVIC_InitStructu

    13、re);/按照上述配置初始化中断11:27/18项目实现初始化TIM3 TIM_TimeBaseStructure.TIM_Period=period;/计数器重装值 TIM_TimeBaseStructure.TIM_Prescaler=prescaler;/预分频值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;/时钟分割 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;/向上计数模式 TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruc

    14、ture);/按上述配置初始化TIM3 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);/允许定时器3更新中断 TIM_Cmd(TIM3,ENABLE);/使能TIM311:27/19项目实现TIM3中断处理函数void TIM3_IRQHandler(void)if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)/如果中断标志被设置 TIM_ClearITPendingBit(TIM3,TIM_IT_Update);/清除中断标志 led_status=led_status;/LED灯状态标志位翻转 11:27/20项目思考STM32F407的通用定时器1S钟延时要如何实现?STM32F407的定时器的向上计数与向下计数有区别?STM32有几个定时器,分别有哪些寄存器?如何正确对STM32定时器进行中断初始化?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:面向物联网的嵌入式系统开发-17-STM32定时器应用开发课件.pptx
    链接地址:https://www.163wenku.com/p-4941508.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库