物联操作技术应用 12_第1页
物联操作技术应用 12_第2页
物联操作技术应用 12_第3页
物联操作技术应用 12_第4页
物联操作技术应用 12_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第11章LiteOS实战-人体感应场景Chapter11LiteOSpractice-Humanbodysensingscene《物联网操作系统技术与应用》制作人张亚军

本章将综合运用所学知识,进行LiteOS的实战演练。利用浙江华为NB-Iot全栈实验实训箱,实现人体感应场景实验。前言010302学习目标掌握在LiteOS操作系统中运行外设的方法掌握在LiteOS基础上进行编程的能力完成实战项目—人体感应场景目录人体感应场景实验介绍 人体感应场景系统硬件组成原理图解析系统数据流转关系11.111.211.311.4CONTENTS系统实现步骤1.5人体感应场景实验介绍11.1introductionofhumanbodysensingsceneexperiment11.1人体感应场景实验介绍

人体感应场景实验可进行人体运动状态检测,当有人体靠近时,主控板上的TFT显示屏显示“有人运动”,同时在串口调试助手中输出相应信息。人体感应场景实验拓扑图如图11-1所示。实验中使用了多任务、时间管理、中断管理等知识,通过本实验,读者可学习和掌握LiteOS操作系统在实践中的应用。图11-1人体感应场景实验拓扑图人体感应场景系统硬件组成hardwarecompositionofhumansensingscenesystem11.211.2人体感应场景系统硬件组成

系统硬件使用华为NB-IoT全栈实验实训箱,主控板采用MCU型号为STM32L431VCT6的STM32开发板,板上带有TFT显示模块等。扩展板上有HC-SR501红外感应模块。主控板与扩展板连接如图11-2所示。图11-2主控板与扩展板连接原理图解析schematicanalysis11.311.3原理图解析

根据电路图11-3所示,红外感应模块HC-SR501输出信号引脚为DI3,DI3引脚通过扩展板的P2排线接口和主控板的P5排线接口,连接到MCU管脚PC8,后续代码中将会对芯片PC8引脚进行设置。图11-3电路原理图MCU通过PC8引脚监控人体感应传感器DI3引脚状态,当模块感应到有人体靠近时,DI3引脚被拉升为高电平,MCU判断为有人;当模块未感应到有人体靠近时,DI3引脚被拉低为低电平,MCU判断为无人。11.3原理图解析图11-3电路原理图TFT显示模块涉及到MCU的PE9~PE15引脚,后续会通过STM32cubeMX软件配置这些引脚。系统数据流转关系systemdataflowrelationship11.411.4系统数据流转关系

系统启动后,初始化GPIO引脚、串口和SPI1总线,创建控制任务creat_control_task()和显示任务creat_view_task(),控制任务control_task()调用HC_SR501_Init()函数初始化人体感应传感器,通过get_bodyinput()函数读取PC8引脚状态(HC_SR501_Read_State()),即人体感应状态,并给结构体变量HomeView.BodyInput赋值,存储当前传感器状态。当HomeView.BodyInput的值为1时,控制任务control_task()通过串口调试助手输出“有人运动”,显示任务creat_view_task()在TFT显示屏上显示“有人运动”。系统数据流转关系如图11-4所示。图11-4系统数据流转关系系统实现步骤systemimplementationsteps11.511.5系统实现步骤1.重新配置工程文件复制第2章中移植好LiteOS的裸机工程,双击TEST目录下的TEST.ioc文件,打开STM32CubeMX的工程文件进行重新配置。(1)配置TFT显示模块相关的GPIO功能。与TFT显示模块相关的GPIO有PE9~PE12,单击“Pinout&Configuration”选项卡左侧的“GPIO”选项,单击PE9引脚,在弹出的列表框中选择“GPIO_Output”选项,如图11-5所示,PE9~PE12引脚的配置如表11-1所示。图11-5PE9~PE12引脚的配置11.5系统实现步骤表11-1PE9~PE12引脚的配置11.5系统实现步骤(2)配置TFT显示模块相关的SPI功能。

单击“Pinout&Configuration”选项卡左侧的“SPI1”选项,选择“Full-DuplexMaster”模式,在“ParameterSettings”选项卡中,将“DataSize”设置为“8Bits”。单击PE13引脚,在弹出的列表框中选择“SPI1_SCK”选项;单击PE14引脚,在弹出的列表框中选择“SPI1_MISO”选项;单击PE15引脚,在弹出的列表框中选择“SPI1_MOSI”选项。SPI1的配置如图11-6所示。图11-6SPI1的配置11.5系统实现步骤(3)单击“GENERATECODE”按钮,弹出“CodeGeneration”对话框,单击“OpenProject”按钮,打开TEST工程。2.添加人体感应传感器、TFT显示模块驱动程序及相关文件(1)复制“Components”和“Hardware”文件夹至TEST工程文件夹中,如图11-7所示。图11-7复制“Components”和“Hardware”文件夹至TEST工程文件夹中11.5系统实现步骤(2)导入驱动及相关文件。

①在“TEST\MDK-ARM”目录下,双击“TEST.uvprojx”文件,打开工程,右击“Project”窗格下的“TEST”选项,在弹出的快捷菜单中选择“ManageProjectItems”命令,如图11-8所示。图11-8选择“ManageProjectItems”命令11.5系统实现步骤②在打开的“ManageProjectItems”对话框中,单击“ProjectItems”选项卡,单击“Groups”右侧的“new”按钮,新建“Hardware”和“Components”文件夹,如图11-9所示。图11-9新建“Hardware”和“Components”文件夹11.5系统实现步骤

③选择“Hardware”文件夹,单击“AddFiles”按钮,添加“hc_sr501.c”和“lcd.c”文件(文件在“TEST\Hardware”目录下),如图11-10所示。图11-10在“Hardware”文件夹下添加文件11.5系统实现步骤④以相同的方法,在“Components”文件夹下添加“GUI.c”文件,如图11-11所示。图11-11在“Components”文件夹下添加文件11.5系统实现步骤(3)导入头文件。

①右击“Project”窗格下的“TEST”选项,在弹出的快捷菜单中选择“OptionsforTarget'TEST'”命令,如图11-12所示。图11-12选择“OptionsforTarget'TEST'”命令11.5系统实现步骤图11-13“C/C++”选项卡

②在打开的“OptionsforTarget'TEST'”对话框中,单击“C/C++”选项卡,单击“IncludePaths”文本框后的按钮,添加文件,如图11-13所示。11.5系统实现步骤

③在弹出的“FolderSetup”对话框中,添加“Hardware”下的“HC-SR501”和“LCD”目录;添加“Components”下的“GUI”目录;添加“Core”下的“Src”目录,如图11-14所示。图11-14添加头文件的路径11.5系统实现步骤3.编写及修改代码

1)在TEST工程中,修改gpio.h文件。2)修改spi.h文件。3)修改spi.c文件。4)修改main.c文件。5)创建task_inter.h文件。11.5系统实现步骤6)创建control_task.c文件。7)创建view_task.c文件。1

/************************************************************2功能包括:31、按键任务处理42、读取串口3指令和BC35G状态值53、获取人体状态值64、创建任务入口及任务处理函数7************************************************************/1

/***********************************************************2功能包括:3分页显示:4页面1:显示各模块状态5页面2:调试打印信息,展现过程6***********************************************************/8)修改stm32l4xx_it.c文件。9)在los_hwi.c文件中添加代码。

在los_hwi.c文件中的SysTick_Handler()函数的最后一行添加如下代码。289

温馨提示

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

评论

0/150

提交评论