版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章定时器目录CONTENTS12定时器01STM32F407定时器02
STM32F407脉冲宽度调制0302STM32F407定时器HAL库函数0405定时器实例知识、能力、素质目标阐述定时器/计数器的定义与工作方式阐述STM32F407定时器分类及工作原理阐述脉冲宽度调制原理说明定时器实例开发流程知识目标能够通过阅读文档、查阅资料或寻求帮助来解决问题具有团队合作能力和人际交流能力素质目标运用STM32CubeMX软件配置定时器工程运用KeilMDK软件编写程序,并进行分析运用Proteus软件搭建定时器仿真电路设计基于定时器的实例能力目标目标01定时器1.定时方式:对内部固定频率的机器周期进行计数时为定时方式,称为定时器。计数方式:对外部事件进行计数时为计数方式,称为计数器。定时器的工作方式定时器可以用于精确控制时间间隔和事件触发的电子或数字设备。在嵌入式系统、计算机和电子设备中广泛应用,通过内部计数器或振荡器实现时间测量。定时器可以设置特定的时间间隔,当达到该时间时,会触发中断、产生信号或执行预设的操作5.1定时器计数功能定时功能输入捕获功能对输入信号进行捕获,实现对脉冲的频率测量,可用于对外部输入信号脉冲宽度的测量。时间控制,通过对微控制器内部的时钟脉冲进行计数实现定时功能。脉冲计数,使用微控制器内部的外部时钟来计数,对固定周期的脉冲信号计数。定时器的功能及工作模式输出比较功能将计数器计数值和设定值进行比较,根据比较结果输出不同电平,用于控制输出波形定时器的工作原理硬件定时器
时钟信号源提供稳定的时钟信号作为计时器的基准。计数器从预设值开始计数,每当时钟信号到达时计数器递增。当计数器达到预设值时,定时器会触发一个中断。01软件定时器
软件定时器的工作原理是通过编程语言或系统提供的库函数或系统调用实现定时。0202STM32F407定时器STM32F407定时器分类3/23/2026类型定时器名称计数器位数预分频位数计数器类型有无DMA有无互补输出所在总线最大时钟主要功能应用场景基本定时器Tim6\Tim71616向上有无APB1SYSCLK/2没有输入输出通道,常用作时基,即定时功能触发数/模转换器DAC通用定时器Tim2\Tim53216向上\向下\中央对齐有无APB1SYSCLK/2具有多路独立通道,可用于输入捕获/输出比较,也可用作时基定时、计数、PWM、输入捕获、输出比较Tim3\Tim41616有无APB1SYSCLK/2Tim9\Tim10\Tim111616向上无无APB2SYSCLKTim12\Tim13\Tim141616向上无无APB1SYSCLK/2高级定时器Tim1\Tim81616向上\向下\中央对齐有有APB2SYSCLK除具备通用定时器所有功能外,还具备带死区控制的互补信号输出、刹车输入等功能带可编程死区的互补输出STM32F407各定时器功能描述3/23/20265.2.1基本定时器
时钟源
控制器
计数器CNT计数器是一个16位向上计数的计数器,最大计数值为65535。自动重载寄存器存放着计数器的最大值。基本定时器的计数器从0开始向上计数,当计数器的值与自动重载寄存器相等时产生溢出中断,调用中断函数响应事件,并清零从0重新开始计数基本定时器的功能结构TIM9和TIM12结构框图
内部时钟
计数器的时钟源
内部触发输入
外部时钟模式1基本定时器的配置步骤5.2.2通用定时器
时钟源
控制器
时基单元
输入捕获
捕获/比较(公共)
输出比较
通用定时器结构框图3/23/2026时钟源1、内部时钟模式2、外部时钟模式13、外部时钟模式2外部时钟模式1中的ITRx用于定时器级联
3/23/2026时基单元计数器寄存器(TIMx_CNT):记录分频后的时钟CK_CNT脉冲个数预分频器寄存器(TIMx_PSC):对计数器时钟频率进行分频自动重载寄存器(TIMx_ARR):预装载,可选择立即生效或下一次发生更新事件时生效3/23/2026输入捕获输入阶段对相应的TIx
输入进行采样,生成一个滤波后的信号TIxF。然后,带有极性选择功能的边沿检测器生成一个信号(TIxFPx),该信号可用作从模式控制器的触发输入,也可用作捕获命令。该信号先进行预分频(ICxPS),而后再进入捕获寄存器3/23/2026输出捕获捕获/比较模块由一个预装载寄存器和一个影子寄存器组成。始终可通过读写操作访问预装载寄存器。在捕获模式下,捕获实际发生在影子寄存器中,然后将影子寄存器的内容复制到预装载寄存器中。在比较模式下,预装载寄存器的内容将复制到影子寄存器中,然后将影子寄存器的内容与计数器进行比较输入输出是相同的引脚,分时复用定时器的计数单元(时基单元)计数器从起始值0开始向上递加,直到计数器的计数值达到上限从上限值TIMx_ARR开始向下递减,直到计数器为0即向上/向下计数模式,计数器从0开始,计数到TIMx_ARR后产生一个溢出事件,再从TIMx_ARR开始递减到0定时器的溢出时间
Time是计数一次所需时间PSC是定时器的预分频系数TIMxCLK是内部时钟频率
ARR是自动重装载寄存器的数值PSC是定时器的预分频系数TIMxCLK是内部时钟频率0102每计数一次的时间溢出时间3/23/2026以16MHz系统时钟、TIM3为例目标:500ms溢出周期计算总计数需求:
分配PSC和ARR(需满足16位限制):方案1:选择PSC=7999(分频后时钟=16MHz/8000=2kHz)则ARR+1=8,000,000/8000=1000→ARR=999验证:单次计数时间
溢出时间方案2:选择PSC=3999(分频后时钟=16MHz/4000=4kHz)验证:单次计数时间
溢出时间则ARR+1=8,000,000/4000=2000→ARR=19993/23/2026通用定时器的配置步骤1.使能通用定时器Tim2.设置通用定时器Tim的预分频系数PSC和自动重装载寄存器ARR3.打开通用定时器Tim中断4.在NVIC中配置通用定时器的中断优先级5.编写通用定时器的中断服务函数5.2.3高级定时器
重复计数器
输出比较
断路功能高级定时器结构框图5.2.4看门狗看门狗(WatchDog,WDG)是一种用于监视系统运行状态的定时器电路,在STM32F407中,看门狗能够检测并响应系统的异常情况。使用看门狗的作用:应对软件错误应对硬件故障.在嵌入式系统中,由于电源、外部干扰等硬件故障,系统可能出现异常情况提高系统稳定性应对环境变化远程系统管理独立看门狗
独立看门狗(IndependentWatchDog,IWDG),由专用的低速时钟驱动,在主时钟发生故障时仍然保持工作状态。01窗口看门狗
窗口看门狗(WindowWatchDog,WWDG)时钟由APBI时钟经预分频后提供,通过可配置的时间窗口检测应用程序非正常的过迟或过早的操作。02看门狗的分类5.2.5实时时钟实时时钟(RealTimeClock,RTC)是一个独立的二进制编码的十进制(BinaryCodedDecimal,BCD)定时器/计数器。RTC提供一个日历时钟、两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC单元的主要特性如下:包含亚秒、秒、分钟、小时(12/24小时制)、星期几、日期、月份和年份的日历软件可编程的夏令时补偿两个具有中断功能的可编程闹钟自动唤醒单元,可周期性地生成标志以触发自动唤醒中断参考时钟检测利用亚秒级移位特性与外部时钟实现精确同步5.2.6系统滴答定时器系统滴答(SysTick)定时器,是一个24位的倒计数定时器,是Cortex-M4内核嵌套向量中断控制器(NVIC)中的一个功能单元。SysTick定时器主要功能为:延时功能实时系统的心跳时钟节省MCU资源03STM32F407脉冲宽度调制系统脉冲宽度调制
脉冲宽度调制(PulseWidthModulation,PWM)是一种设定脉冲信号高低电平所占比例的调制技术,是对模拟信号电平进行数字编码的方法。广泛应用于从测量、通信到功率控制与变换的许多领域中,比如逆变电路的应用、变频空调的交直流变频调速等PWM的频率:指一个周期1秒钟内信号从高电平到低电平再回到高电平的次数,即一秒钟PWM有多少个周期,单位:Hz。PWM的周期:周期=1/频率,T=l/f。如果频率f为50Hz,则T=20ms,那么周期为20ms,1秒钟有50个PWM周期。脉冲宽度占空比
指在一个周期内,高电平时间占整个信号周期的百分比,即高电平时间与周期的比值,占空比=Tp/TPWM输出呼吸灯
一般人眼睛对于80Hz以上刷新频率完全没有闪烁感,人眼会产生视觉暂留效果,基本看不到闪烁,看到的是一个常亮的LED。频率很高时,看不到闪烁,占空比越大,LED灯越亮;频率很低时,可看到闪烁,占空比越大,LED灯越亮。在频率一定下,可以用不同占空比改变LED灯的亮度,使其达到一个呼吸灯的效果PWM配置步骤04STM32F407定时器HAL库函数STM32F407定时器HAL库函数函数名称功能描述HAL_TIM_Base_Start_IT启动定时器的计数功能,并使能中断。当定时器溢出时,会产生中断HAL_TIM_Base_Stop_IT停止定时器的计数功能,并禁止中断HAL_TIM_PWM_Start启动PWM输出HAL_TIM_PWM_Stop停止PWM输出__HAL_TIM_SetCompare动态调整PWM占空比HAL_TIM_IRQHandler定时器中断处理函数,通常用于处理定时器溢出、输入捕获、输出比较等中断HAL_TIM_PeriodElapsedCallback定时器溢出回调函数05定时器实例使用定时器3驱动LED灯定时亮灭,使其产生精准延时实现LED灯闪烁,定时500ms。使用PB0引脚连接LED灯,每500ms进行一次电平翻转,LED灯状态翻转一次。实例要求:5.5.1定时器3延时实例STM32CubeMX配置创建STM32CubeMX工程配置系统时钟010302配置GPIO生成KeilMDK工程0405配置定时器定时器3延时实例双击打开main.c文件,在main.c文件中编写代码。将以下代码写在/*USERCODEBEGIN0*/代码段中,/*USERCODEBEGIN0*/voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim)//定时器中断回调函数{ HAL_GPIO_TogglePin(LED_RED_GPIO_Port,LED_RED_Pin);//翻转PB0引脚电平}/*USERCODEEND0*/在main函数中,将以下代码写在/*USERCODEBEGIN2*/代码段中
/*USERCODEBEGIN2*/HAL_TIM_Base_Start_IT(&htim3);//开启Tim3定时,同时开启中断
/*USERCODEEND2*/定时器3延时实例Proteus仿真电路
Proteus中搭建仿真电路,双击Proteus原理图中的STM32F407VET6,设置加载程序文件的路径,将KeilMDK编译生成的hex程序加载到STM32F407VET6芯片中。Proteus仿真时每500msLED闪烁一次。
利用定时器TIM1的channel2通道输出频率为1Hz、占空比为10%的PWM波。TIM1的channel2通道对应PE11引脚,使用虚拟示波器观察PE11引脚的波形变化,分析PWM波形及其占空比。实例要求:5.5.2定时器1PWM输出实例STM32CubeMX配置创建STM32CubeMX工程配置系统时钟010302配置定时器TIM1通道2生成KeilMDK工程0405配置定时器中断定时器1PWM输出实例
双击打开main.c文件,在main.c文件中编写代码,将以下代码写在/*USERCODEBEGIN2*/代码段中。
/*USERCODEBEGIN2*/HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//使能TIM1的通道2/*USERCODEEND2*/Proteus仿真电路Proteus中搭建仿真电路,双击Proteus原理图中的STM32F407VET6,设置加载程序文件的路径,将KeilMDK编译生成的hex程序加载到STM32F407VET6芯片中。运行仿真,观察PE11引脚对应的波形图,进而分析PWM波形的占空比。利用定时器TIM1的channel2通道输出频率为1Hz、占空比为10%的PWM波形,并且在程序运行过程中动态修改PWM占空比。TIM1的channel2通道对应PE11引脚,使用虚拟示波器观察PE11引脚的波形变化,分析PWM波形及其占空比。实例要求:5.3定时器1PWM动态调整占空比实例STM32CubeMX配置创建STM32CubeMX工程配置系统时钟010302配置定时器TIM1通道2生成KeilMDK工程0405配置定时器中断定时器1PWM动态调整占空比实例双击打开main.c文件,在main.c文件中编写代码。将以下代码写在/*USERCODEBEGIN0*/代码段中,设置变量pwmVal并赋初始值0,以便后续调用。/*USERCODEBEGIN0*/ uint16_tpwmVal=0;//PWM占空比/*USERCODEEND0*/将以下代码写在/*USERCODEBEGIN2*/代码段中,使能TIM1的通道2./*USERCODEBEGIN2*/HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);/*USERCODEEND2*/定时器1PWM动态调整占空比实例将以下代码写在while(1)循环体中,不断变化PWM的占空比。while(1){/*USERCODEENDWHILE*/while(pwmVal<=10000){pwmVal=pwmVal+1000;__HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_2,pwmVal);//修改比较值,修改占空比HAL_Delay(1000);}w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷制品生产工艺及质量控制标准
- 数据分析与应用技能自评记录
- 求职宝典:面试技巧与成功秘诀
- 个人职业发展与就业前景预测报告
- 不同文化背景下的组织管理策略
- 电子竞技产业发展趋势报告
- 网络咖啡厅装修设计与网络布局
- 物流行业库存管理与优化方案
- 儒商之道:儒家思想在商业中的应用
- 文化多样性对现代社会的意义
- 尾箱集市商业计划书
- 精酿馆策划方案
- 少先队德育知识讲座
- 中医康复实训室方案及流程
- (完整)CRH380A动车组轮对检修流程及改进方案
- 四川省省属卫生事业单位公开招聘卫生专业技术岗位人员公共科目笔试大纲
- 船舶液压系统常见故障分析及解决方案
- 2023年中级注册安全工程师《安全生产专业实务(建筑施工安全)》真题及答案
- THSPP 0010-2023 欧标茶生产茶园栽培技术规程
- 危化品考试题库及答案参考
- 1213 日本当代建筑的坡屋顶的知识
评论
0/150
提交评论