版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目7嵌入式操作系统FreeRTOS及应用任务7.2基于FreeRTOS的电子闹钟设计任务目标职业能力目标(1)掌握FreeRTOS常用接口函数的用法。(2)学会基于FreeRTOS平台下的程序编码与调试。基于STM32F411RETx核心板设计一个电子钟,具备以下功能。(1)能够显示时/分/秒等时钟信息,通过串口发送到PC显示。(2)能够进行时钟和闹钟的设置,通过PC串口调试助手软件发送数据实现:发送“T+时间”表示设置时钟,如“T093000”表示设置时钟为09:30:00;发送“A+时间”表示设置闹钟,如“A234500”表示设置闹钟为23:45:00。(3)闹钟时间到,控制LED指示灯开启3s后关闭。(4)电子时钟的启动由按键KEY控制,按键KEY按下后,才启动时钟显示。FreeRTOS电子闹钟FreeRTOS硬件原理任务分析LED指示灯控制引脚PA5,按键控制引脚PC13。利用UART2完成串口通信,引脚PA2复用为TX,引脚PA3复用为RX。首先进行需求分析,系统要实现的功能有四个:显示功能、设置功能、闹钟功能和按键功能。我们可以以功能为单元,进行任务的划分。对于按键功能而言,当按键数量较多时,一般将按键功能拆分为按键扫描任务和按键处理任务,二者之间通过消息队列进行数据传递。因此,我们将整个系统划分为以下五个任务。(1)显示任务:完成时钟的显示。(2)设置任务:完成时钟和闹钟的修改。(3)闹钟任务:控制指示灯开启一定的时间后关闭。(4)按键扫描任务:完成按键的定时扫描。(5)按键处理任务:执行按键按下后的具体操作(启动电子时钟工作,进行时钟的显示)。FreeRTOS电子闹钟任务实施任务实施前必须准备好表7-19所示的设备和资源。序号设备/资源名称数量是否准备到位(√)1STM32F411RETx最小核心板1
2USB转串口数据线1
表7-19设备清单表FreeRTOS电子闹钟任务实施导航&实施纪要任务实施创建任务。创建消息队列。创建软件定时器。创建二值信号量。创建互斥信号量。修改软件定时器的优先级。修改HAL的时间基准。程序编写。创建项目引脚分配中间件配置编译下载程序搭建硬件环境结果验证中间件配置步骤:FreeRTOS电子闹钟具体实施步骤如下任务实施设置CubeMX环境启动CubeMX软件,依次选择“NewProject”→“StartMyprojectfromMCU”选项,在PartNumberSearch搜索框中输入“STM32F411RE”,选中搜索结果的STM32F411RETx,单选右上角的“StartProject”选项,进入开发板初始化对话框。创建项目,并将其设置为相应的IDE生成代码(1)首先,在主窗口中选择“ProjectManager”选项,打开“Project”标签,打开“ProjectSetting”窗口。(2)在相应的文本框中输入项目名称,选择项目保存路径。(3)将Toolchain/IDE选项设置为“MDK-ARMV5”。选择File菜单中的“SaveProject”选项,保存项目,打开项目所在的文件夹确认项目已经创建。FreeRTOS电子闹钟具体实施步骤如下任务实施引脚分配本任务中的引脚分配主要是PA5和PC13的功能选择:选PA5的功能为“GPIO_Output”,PC13的功能为“GPIO_Input”,配置结果如图所示。外设配置本任务的外设配置主要是串口2、定时器11以。串口1采用中断方式,波特率为115200bps,其余参数不变,配置结果如图7-18所示;定时器11工作于定时模式下,配置时基单元产生1s的更新中断。FreeRTOS电子闹钟具体实施步骤如下任务实施5.中间件的配置在外设配置窗口中依次选择“Middleware”→“FreeRTOS”,将展开FreeRTOS的配置窗口。在配置窗口上方的Mode栏中选择Interface(接口)为“CMSIS-V2”。在配置窗口下方的Configuration栏,进行各个对象的创建。1)创建任务选择“TasksandQueues”标签页,单击Tasks栏中的“Add”按钮,创建如下五个任务。任务名(中文)任务名优先级函数入口闹钟任务AlarmTaskosPriorityHighStartAlarmTask设置任务ConfigTaskosPriorityAboveNormalStartConfigTask按键扫描任务KeyScanTaskosPriorityNormalStartKeyScanTask按键处理任务KeyProcTaskKeyProcTaosPriorityBelowNormalStartKeyProcTask显示任务DispTaskosPriorityLowStartDispTaskFreeRTOS电子闹钟任务实施具体实施步骤如下创建消息队列
创建消息通信队列选择“TasksandQueues”标签页,单击Queues栏中的“Add”按钮,如图7-21所示。在出现的窗口中,修改消息队列的名称为“ComQueues”(用于存放串口接收的数据),消息队列的大小设置为3,表示最多可以容纳3个消息,单个消息的大小设置为“uint64_t”(8字节)。再单击Queues栏中的“Add”按钮,在出现的窗口中,修改消息队列的名称为“KeyQueue”(用于存放按键的键值),消息队列的大小设置为10,表示最多可以容纳10个消息,单个消息的大小设置为“uint8_t”(1字节),其余参数保持默认值。创建按键消息队列FreeRTOS电子闹钟具体实施步骤如下任务实施3)创建软件定时器选择“TimersandSemaphores”标签页,单击Timers栏中的“Add”按钮。修改软件定时器的名称为“LedTimer”(用于指示灯的控制),回调函数为“LedTimerCallback”,定时器类型为“osTimerOnce”(单次触发定时器)二值信号量的名称为“AlarmBinarySem”(用于闹钟任务的同步),其余参数保持默认值FreeRTOS电子闹钟具体实施步骤如下任务实施5)创建互斥量选择“Mutexes”标签页,单击Mutexes栏中的“Add”按钮,在出现的窗口中,修改互斥量的名称为“TimerMutex”(用于时钟全局变量的互斥访问),其余参数保持默认。6)修改软件定时器的优先级7)修改HAL的时间基准使用TIM10(任一定时器均可)产生HAL库的时间基准不勾选FreeRTOS电子闹钟具体实施步骤如下任务实施程序编写生成MDK工程后,进行应用程序的编写,在freertos.c文件中定义电子闹钟任务的数据类型。定义时钟结构体类型,包含时分秒3个成员变量定义按键状态机结构体类型定义多按键按下的返回值数据缓冲区长度的宏定义初始化变量FreeRTOS电子闹钟任务分析任务实施闹钟任务函数实现,代码如下设置任务函数,主要代码如下FreeRTOS电子闹钟具体实施步骤如下任务实施键盘扫描任务代码如下FreeRTOS电子闹钟具体实施步骤如下任务实施按键处理任务主要代码如下FreeRTOS电子闹钟具体实施步骤如下任务实施显示任务的主要代码如下:关闭指示灯回调函数代码如下:FreeRTOS电子闹钟具体实施步骤如下任务实施定时器更新中断回调函数的主要代码如下,这段函数也写在freertos.c文件中FreeRTOS电子闹钟具体实施步骤如下任务实施修改主程序main.c注释掉该函数FreeRTOS电子闹钟实验结果验证任务实施完成所有任务的函数的编写后,编译程序,修改语法错误,直到无误。生成的可执行代码下载到核心板。从上图可以看到,在串口调试助手中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第1课时 比例的意义
- 2026秋新版小学冀人版科学五年级上册教学设计(附目录)适用于新课标
- 实战财务面试题及答案
- 2026年一建市政实务道路桥梁专项试卷及答案
- 2026年一建民航机场工程实务考前错题专项突破试卷(含答案)
- 2026大型调研面试题及答案
- 2026年一建经济考前标准模拟预测试卷及答案
- 2026分类招生的面试题及答案
- 2026高职招生面试题及答案
- 2026官场应酬面试题及答案大全
- 宋史赵抃传课件
- 2025河北雄安安新县公共服务局高校毕业生临时公益性岗位招聘25人考试参考试题及答案解析
- 2025年万载中学、县第二中学、万载中专教师选调笔试备考试题及答案解析
- 加油站现场安全重点检查指引分册(南京)
- 混凝土废渣管理办法
- 江苏+商会+管理办法
- 医院信息化建设中长期规划(十五五规划2025年)
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 成人术中非计划低体温预防与护理-2024中华护理学会团体标准
- 10S507 建筑小区埋地塑料给水管道施工
- 医院品管圈大赛课题研究型、问题解决型、平衡记分卡评分标准
评论
0/150
提交评论