教学材料《STM实战通关》-单元3_第1页
教学材料《STM实战通关》-单元3_第2页
教学材料《STM实战通关》-单元3_第3页
教学材料《STM实战通关》-单元3_第4页
教学材料《STM实战通关》-单元3_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1STM32F4的定时器3.1.1定时器简介

STM32F4包含14个定时器,如表3.1所示。其中基本定时器包括TIM6,TIM7,其结构最简单,也具有最基本的定时功能,一是用于基本定时、产生时基,二是用于驱动DAC数/模转换器;通用定时器包括5和TIME9~TIME14共10个,通用定时器除了包含基本定时器的功能外,还有输入捕获、输出比较和PWM功能等;高级定时器包括TIM1、TIM8。详见《STM32F4中文参考手册》。本单元主要介绍STM32F4的通用定时器(TIM2~TIM5和TIM9~TIM14)。下一页返回3.1STM32F4的定时器其中TIM2,TIMS为32位定时器。通用定时器包含一个16位或32位(仅TIM2,TIM5)自动重载计数器(CNT),该计数器由可编程预分频器(PSC)驱动。每个通用定时器都是完全独立的,没有互相共享的任何资源。通用TIMx定时器主要应用如下。

(1)更新:计数器的上溢或下溢。

(2)事件触发。(3)输入捕获。

(4)输出比较。

(5)支持针对定位的增量编码和霍尔传感器电路。

(6)触发输入作为外部时钟或按周期电源管理。上一页下一页返回3.1STM32F4的定时器3.1.2定时器时钟由图3.1可见,定时器时钟来源可以是内部时钟(CK_INT)、外部时钟模式(外部引脚TIx,由输入捕获部分产生)、外部触发输入ETR、内部触发输入ITRx(该时钟是由另一个定时器输出产生的,对应到框图中的TRGO)。3.1.3时基单元时基单元由三部分组成,即PSC预分频器、CNT计数器和自动重载寄存器,如图3.2所示。上一页下一页返回3.1STM32F4的定时器

PSC预分频器负责对所选时钟CK_PSC进行分频,产生所需的定时器工作时钟。CNT计数器负责计数。自动重载寄存器负责在定时器被某事件触发后,将重载值装载到计时器中。3.1.4输入捕获输入捕获功能时,通过检测TIM_CHx上的边沿信号(上升沿或下降沿),在信号边沿,将当前计数器值存放到相应通道的捕获/比较寄存器中。以TI1通道为例,输入信号经过滤波器输出TI1F,再经过边沿检测(上升沿或下降沿)及选通后,产生的信号通过分频器分频后输出捕获的信号CC1。输入通道如图3.3所示。上一页下一页返回3.1STM32F4的定时器输入捕获功能相关库函数如下:3.1.5输出比较使用输出比较功能时,需要在CCRx寄存器中设定输出比较值。上一页下一页返回3.1STM32F4的定时器定时器将当前计数值与比较值做比较,再根据比较结果和极性、有效性设定,确定输出电平的高低状态。输出通道如图3.4所示。输出比较功能相关库函数如下:上一页返回3.2PWM“呼吸灯”实验3.2.1原理介绍脉冲宽度调制(PulseWidthModulation,PWM)是一种对脉冲宽度进行数字控制的调制技术。要使STM32的定时器TIMx产生PWM输出,除了3.1节提到的3个寄存器外,还需要捕获/比较模式寄存器(TIMx_CCMRl/2)、捕获/比较使能寄存器(TIMx_CCER)、捕获/比较寄存器(TIMx_CCRl~4)。STM32定时器的PWM输出模式包括两种,即PWM模式1和PWM模式2。下一页返回3.2PWM“呼吸灯”实验在PWM模式1下,当前计数值TIMx_CNT始终与输出比较值TIMx_CCRx进行比较,只要TIMx_CNT<TIMx_CCRx,PWM参考信号OCxREF便为高电平;否则为低电平。在PWM模式2下,则情况完全相反。以PWM模式1为例,若自动重载值TIMx_ARR=8,CCR取值不同,则OCxREF将表现为不同的输出。如图3.5所示。3.2.2编程方法(1)配置定时器2与PWM模式。定时器2通道1输出信号通过GPIOAS引脚复用输出。通过查看数据手册中的“Table7.Alternatefunctionmapping”可得,如图3.6所示。上一页下一页返回3.2PWM“呼吸灯”实验上一页下一页返回3.2PWM“呼吸灯”实验上一页下一页返回3.2PWM“呼吸灯”实验(2)在main.c文件中,设计了调节PWM占空比的方法。上一页下一页返回3.2PWM“呼吸灯”实验上一页下一页返回3.2PWM“呼吸灯”实验3.2.3实验现象LED“呼吸灯”产生忽明忽暗的效果。上一页返回3.3输入捕捉“超声测距”实验3.3.1原理介绍使用通用定时器的输入捕获功能时,需要检测TIMx_CHx上的边沿信号。在边沿信号(如上升沿或下降沿)发生时,将当前计数值存放到对应通道的捕获/比较寄存器里,完成一次捕获。同时,还可以配置捕获时是否触发中断/DMA等。超声测距采用通用超声模块HC-SR04与实验平台连接,如图3.7所示。测距步骤如下。(1)由单片机PAl发出一个不小于10μs的高电平信号至模块TRIG端,触发模块开启测距。下一页返回3.3输入捕捉“超声测距”实验

(2)模块连发8个40kHz左右的脉冲信号。

(3)脉冲信号遇到障碍物后反射回来。模块ECHO端接收到距离回响信号,高电平的时间就是超声波从发射到返回的时间,PAO接收ECHO端信号,如图3.8所示。本实验通过TIMS通道1捕获输入距离回响信号的脉宽,通过捕获单周期内上升沿与下降沿之间的间隔时间,来计算信号的高电平脉冲宽度。串口端每is更新一次被测距离值。上一页下一页返回3.3输入捕捉“超声测距”实验3.3.2编程方法(I)使用杜邦线连接ECHO和PAO,TRIG和PA1。初始化PAO。上一页下一页返回3.3输入捕捉“超声测距”实验(2)配置定时器定时单元和输入捕捉工作模式。(3)设置输入捕捉中断,并开启。上一页下一页返回3.3输入捕捉“超声测距”实验上一页下一页返回3.3输入捕捉“超声测距”实验上一页下一页返回3.3输入捕捉“超声测距”实验上一页下一页返回3.3输入捕捉“超声测距”实验(4)在main.c中,通过PAl发送触发信号给模块。上一页下一页返回3.3输入捕捉“超声测距”实验(1)通过定时器输入捕获中断函数捕获echo信号,并测算。设置输入捕获为上升沿捕获,记录发生上升沿事件时TIMS_CNT的值;设置输入捕获为下降沿捕获,记录发生下降沿事件时TIMS_CNT的值。上一页下一页返回3.3输入捕捉“超声测距”实验上一页下一页返回3.3输入捕捉“超声测距”实验上一页下一页返回3.3输入捕捉“超声测距”实验3.3.3实验现象将超声测距模块对准障碍物,串口中即显示模块距障碍物的实际距离,如图3.9所示。上一页返回3.4常用固件库函数本单元主要固件库函数如表3.2所示。返回3.5项目3:高频频率计的设计3.5.1方案设计频率测量是电子技术中的重要领域,很多电子系统对高频测量的精度、速度、频带宽等指标有着极高的要求。本项目利用32位定时器TIMS_CHl(PAO)的输入捕获功能来捕获TIM2_CH1(PF9)输出的高频PWM信号(3~30MHz)的上升沿,继而精确测算出高频信号的频率。频率被定义为单位时间内周期的个数。通过计算1ms中周期的个数来推算出信号频率。单位为/s。STM32F407定时器最大时钟频率为168MHz,输入捕捉通道对外部输入源的最大分频系数为8。下一页返回3.5项目3:高频频率计的设计根据采样定理,本设计最大可测频率为168MHzx8/2-=680MHz。通过KEY0发送测频开启/关闭消息。开启后,在使用定时器3产生的1s门时中断产生1s的软定时。同时开启TIMS输入捕捉功能及中断TIMS_IRQHandler,并在TIMS_IRQHandle:中记录周期个数。系统每1s对信号频率Freq进行一次测算,由此得到Freq=FreqSumx分频系数x100。程序流程如图3.10所示。3.5.2编程方法(1)在3.2节“呼吸灯”程序的基础上新建timer.C。(2)初始化TIM3.TIM3用于产生1s门时中断。上一页下一页返回3.5项目3:高频频率计的设计上一页下一页返回3.5项目3:高频频率计的设计(3)定义TIM3_IRQHandle:中断函数。当1s门时中断发生时,计算每1s内捕获到的脉冲个数。上一页下一页返回3.5项目3:高频频率计的设计上一页下一页返回3.5项目3:高频频率计的设计(4)初始化TIM5。TIM5用于捕获TIM2输出的PWM波的上升沿。上一页下一页返回3.5项目3:高频频率计的设计上一页下一页返回3.5项目3:高频频率计的设计(5)定义TIM5_IRQHandle中断函数。当信号上升沿到来时,进人TIM5_IRQHandler捕获中断。上一页下一页返回3.5项目3:高频频率计的设计上一页下一页返回3.5项目3:高频频率计的设计(6)在main.c中,当KEY0按下时,打开Tim3,产生1s门时中断,同时打开TIM5输入捕获功能。上一页下一页返回3.5项目3:高频

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论