物联网嵌入式技术课件:竞赛电子秒表_第1页
物联网嵌入式技术课件:竞赛电子秒表_第2页
物联网嵌入式技术课件:竞赛电子秒表_第3页
物联网嵌入式技术课件:竞赛电子秒表_第4页
物联网嵌入式技术课件:竞赛电子秒表_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

实现电子秒表物联网嵌入式技术实现电子秒表引导案例:你还知道哪些电子秒表?了解一下它们的功能。机械秒表电子秒表秒表旧称马表、跑表,是一种常用的测时仪器,多在径赛中计时用。项目任务

任务1使用定时器定时一秒任务2STM32控制数码管显示任务3实现电子秒表实现电子秒表职业能力目标01任务描述与要求02知识链接03任务准备04任务实施05任务小结06任务拓展07任务一使用定时器定时一秒了解定时器/计数器的工作原理;掌握Cortex-M3定时器的工作模式;理解Cortex-M3定时器的配置方法;理解Cortex-M3定时器中断的配置方法;掌握Cortex-M3定时器的编程方法。能根据功能需求,使用STM32CubMX软件,正确配置STM32定时器;能根据功能需求,正确添加代码,操控STM32定时器实现基本定时器。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02知识链接03任务准备04任务实施05任务小结06任务拓展07任务一使用定时器定时一秒任务描述:电子秒表的制作需要产生一个精确的1秒时间,本任务要求使用定时器产生1秒的时间,并控制LED灯1秒闪烁1次。任务要求:正确配置定时器;使用定时器中断方式产生1秒时间。任务描述与要求02职业能力目标01任务描述与要求02知识链接03任务准备04任务实施05任务小结06任务拓展07任务一使用定时器定时一秒STM32定时/计数器定时/计数功能的数据类型和接口函数12知识链接03使用定时器定时1秒定时器中断流程34STM32定时/计数器1定时/计数器分类定时/计数工作原理23三种计数模式4定时时间的计算定时/计数器分类STM32F103系列共有8个定时器,分为2个基本定时器TIM6和TIM7,4个通用定时器TIM2、TIM3、TIM4、TIM5,2个高级定时器TIM1和TIM8。定时器类型定时器编号计数器位数计数器类型捕获/比较通道数挂载总线/接口时钟定时器时钟高级定时器TIM1、TIM816位递增、递减、递增/递减4APB2/72MHz72MHz通用定时器TIM2、TIM3、TIM4、TIM516位递增、递减、递增/递减4APB1/36MHz72MHz基本定时器TIM6、TIM716位递增无APB1/36MHz72MHzSTM32定时/计数器1定时/计数器分类定时/计数工作原理23三种计数模式4定时时间的计算定时/计数工作原理基本定时器框图定时/计数工作原理定时器时钟TIMxCLKTIM2、TIM3、TIM4、TIM5、TIM6、TIM7的计数时钟TIM1、TIM8的计数时钟STM32定时/计数器1定时/计数器分类定时/计数工作原理23三种计数模式4定时时间的计算三种计数模式计数模式计数示意图计数过程向上计数模式从0开始递增计数,直到ARR,发生溢出。计数器重装为0,开始下一轮计数。向下计数模式从ARR开始递减计数,直到0,发生溢出。计数器重装为ARR,开始下一轮计数。中央对齐模式(向上/向下计数)从0开始递增计数,记到ARR-1,发生溢出;数器重装为ARR,然后开始向下计数直到1时发生溢出;然后计数器重装为0,开始下一轮计数。STM32定时/计数器1定时/计数器分类定时/计数工作原理23三种计数模式4定时时间的计算定时时间的计算计数器在CK_CNT的驱动下,计一个数的时间则是CK_CLK的倒数,即:所以产生一次中断的时间为:

STM32定时/计数器定时/计数功能的数据类型和接口函数12知识链接03使用定时器定时1秒定时器中断流程34定时/计数功能的数据类型和接口函数(1)HAL_TIM_Base_Init函数函数原型HAL_StatusTypeDefHAL_TIM_Base_Init(TIM_HandleTypeDef*htim)功能描述按照定时器句柄中指定的参数初始化定时器时基单元入口参数*htim:定时器句柄的地址返回值HAL_StatusTypeDef:HAL_OK初始化成功,HAL_ERROR:初始化失败注意事项该函数可以由CubeMX软件自动生成,不需要用户自己调用定时/计数功能的数据类型和接口函数(2)HAL_TIM_Base_Start函数函数原型HAL_StatusTypeDefHAL_TIM_Base_Start(TIM_HandleTypeDef*htim)功能描述在轮询方式下启动定时器运行入口参数*htim:定时器句柄的地址返回值HAL_StatusTypeDef:固定返回HAL_OK表示启动成功注意事项该函数在定时器初始化完成之后调用需要用户自己调用定时/计数功能的数据类型和接口函数(3)HAL_TIM_Base_Start_IT函数函数原型HAL_StatusTypeDefHAL_TIM_Base_Start_IT(TIM_HandleTypeDef*htim)功能描述使能定时器的更新中断,并启动定时器运行入口参数*htim:定时器句柄的地址返回值HAL_StatusTypeDef:固定返回HAL_OK表示启动成功注意事项该函数在定时器初始化完成之后调用需要用户自己调用定时/计数功能的数据类型和接口函数(4)HAL_TIM_Base_Stop函数函数原型HAL_StatusTypeDefHAL_TIM_Base_Stop(TIM_HandleTypeDef*htim)功能描述轮询方式下停止定时器运行入口参数*htim:定时器句柄的地址返回值HAL_StatusTypeDef:固定返回HAL_OK表示停止成功注意事项该函数在定时器初始化完成之后调用需要用户自己调用定时/计数功能的数据类型和接口函数(5)HAL_TIM_Base_Stop_IT函数函数原型HAL_StatusTypeDefHAL_TIM_Base_Stop_IT(TIM_HandleTypeDef*htim)功能描述中断方式下停止定时器运行入口参数*htim:定时器句柄的地址返回值HAL_StatusTypeDef:固定返回HAL_OK表示停止成功注意事项该函数在定时器初始化完成之后调用需要用户自己调用定时/计数功能的数据类型和接口函数(6)HAL_TIM_IRQHandler函数函数原型voidHAL_TIM_IRQHandler(TIM_HandleTypeDef*htim)功能描述所有定时器中断发生后的通用处理函数入口参数*htim:定时器句柄的地址返回值无注意事项函数内部先判断中断类型,并清除对应的中断标志,最后调用回调函数完成中断处理该函数可以由CubeMX软件自动生成,不需要用户自己调用定时/计数功能的数据类型和接口函数(7)HAL_TIM_PeriodElapsedCallback函数函数原型voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim)功能描述所有定时器中断发生后的通用处理函数入口参数*htim:定时器句柄的地址返回值无注意事项1.该函数由定时器中断通用处理函数HAL_TIM_IRQHandler调用,完成所有定时器的更新中断的任务处理2.函数内部需要根据定时器句柄的实例来判断是哪一个定时器产生的本次更新中断3.函数由用户根据具体的处理任务编写STM32定时/计数器定时/计数功能的数据类型和接口函数12知识链接03使用定时器定时1秒定时器中断流程34使用定时器定时1秒定时时间计算公式为:T=((PSC+1)×(ARR+1))/TIMxCLK基本定时器TIM6,递增计数,若:PSC=7200-1,ARR=10000-1,T=1s。STM32定时/计数器定时/计数功能的数据类型和接口函数12知识链接03使用定时器定时1秒定时器中断流程34定时器6递增计数,记到ARR时,触发更新中断在启动文件中找到中断服务程序TIM6_IRQHandlerTIM6_IRQHandler中调用定时器通用处理函数HAL_TIM_IRQHandlerHAL_TIM_IRQHandler调用更新中断回调函数HAL_TIM_PeriodElapsedCallback完成具体的任务定时器中断流程STM32定时器中断处理流程可以分为四步:职业能力目标01任务描述与要求02知识链接03任务准备04任务实施05任务小结06任务拓展07任务1使用定时器定时一秒任务准备04任务实施前必须先准备好以下设备和资源序号设备/资源名称数量是否准备到位(√)1M3核心模块12NEWLab实训平台13USB转串口线141k欧电阻15LED16杜邦线2职业能力目标01任务描述与要求02知识链接03任务准备04任务实施05任务小结06任务拓展07任务1使用定时器定时一秒搭建LED电路建立工程并生成代码完善代码123任务实施05编译程序烧写程序观察效果456搭建LED电路注意LED正负极不能接反搭建LED电路建立工程并生成代码完善代码123任务实施02编译程序烧写程序观察效果456建立工程并生成代码第一步

新建文件夹“task3-1”用于保存本任务工程第二步

新建STM32CubeMX工程第三步

配置调试端口:SerialWire第四步配置时钟:HCLK=72MHzPCLK1=36MHzPCLK2=72MHZ具体操作请参考项目1任务1任务实施相关内容建立工程并生成代码APB1Timerclocks为72MHz,即TIM2~TIM7的TIMxCLK为72MHz

定时器时钟配置建立工程并生成代码第五步:配置LED的GPIO功能建立工程并生成代码第六步:配置定时器TIM6的参数

PSC=7200-1ARR=10000-1T=1秒建立工程并生成代码第七步:配置定时器TIM6的中断

使能定时器6中断;抢占优先级=1子优先级=0建立工程并生成代码第八步

保存STM32CubeMX工程第九步

生成初始C代码工程,打开MDK-ARM工程具体操作请参考项目1任务1任务实施相关内容。搭建LED电路建立工程并生成代码完善代码123任务实施05编译程序烧写程序观察效果456完善代码(1)启动TIM6并使能更新中断在main.c中添加:完善代码(2)编写TIM6更新中断服务程序每隔1秒进入一次回调函数,LED状态翻转一次回调函数是通用的,必须先判断一下是哪个定时器搭建LED电路建立工程并生成代码完善代码123任务实施05编译程序烧写程序观察效果456编译程序

参考项目1任务2任务实施对工程进行配置,确保编译通过,生成hex文件。烧写程序

参考项目1任务2任务实施,使用FlashLoaderDemonstrator工具将hex文件烧写到M3核心模块。搭建LED电路建立工程并生成代码完善代码123任务实施05编译程序烧写程序观察效果456观察效果闪烁

程序下载入STM32芯片后,将JP1拨到“NC”,按下复位按键,我们将看到LED每隔1秒亮灭一次。职业能力目标01任务描述与要求02知识链接03任务准备04任务实施0

温馨提示

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

评论

0/150

提交评论