"景先生毕设|www.jxszl.com

物联网操作系统(rtthread)在stm32中应用【字数:9078】

2024-01-16 14:48编辑: www.jxszl.com景先生毕设
本课题基于STM32F103RCT6单片机设计了一套将嵌入式系统移植进入stm32并进行网络数据交换的应用系统。该系统主要包括温湿度模块、wifi模块、lcd模块,flash模块。采用STM32F103RCT6作为系统的MCU,rt-thread作为MCU操作系统,esp8266作为连接网络的模块进行网络数据交换,dht11作为检测温湿度模块,lcd作为显示各项数据模块,w25q64作为存储中文字符库的flash。通过使用这些模块我们可以实现以下功能,通过网络来获取天气信息,进行网络对时,更新本地时间,上传温湿度数据到onenet云端,在LCD上实时显示当前的时间,当前温湿度,以及今明天气状况。
目录
第一章 绪论 4
1.1课题研究背景 4
1.2 课题国内外研究状况 5
1.3 课题主要研究内容 6
第二章 总体设计 6
2.1系统功能要求 6
2.2系统整体构成 7
2.3 硬件的选择 8
2.3.1 主控单片机的选择 8
2.3.2 外设选择 8
第三章 RTTHREAD介绍 9
3.1 RTTHREAD简介 9
3.2 配置外设方法(ENV介绍) 9
3.3 编译构建工程(SCONS简介) 10
3.3.1 Scons简介 10
3.3.2构建工具概念 10
3.3.3 RTThread 构建工具 11
3.4 构建编译工程过程 11
第四章 硬件设计 14
4.1 微控制器STM32F103RCT6 14
4.2 WIFI模块 16
4.3 LCD模块设计 17
4.4温湿度模块设计 17
第五章 软件设计 18
5.1 开发环境 18
5.2 工程文件夹 19
5.3 程序整体流程 21
5.4 LCD显示系统程序设计 22
5.5 WIFI模块程序设计 24
5.6温湿度模块程序设计 25
5.7天气系统程序设计  *51今日免费论文网|www.jxszl.com +Q: ^351916072
25
5.8 对时系统设计 27
5.9 上传数据到云端设计 28
第六章 系统测试 29
6.1 程序下载 29
6.2效果图 30
结论 34
参考文献 35
致谢 36
第一章 绪论
1.1课题研究背景
现在已经逐步进入万物互联的时代,即物联网时代,物联网简单理解就是物品与物品、人与物品,人与人之间互联。[1]物联网的迅速发展对单片机实时性要求也越来越高,传统的裸机程序由于较差的实时性,已经很难适用于当下物联网的发展。所以在单片机中加入嵌入式操作系统显得尤为重要,操作系统本身拥有丰富的线程通讯来提高整个系统运作效率。RTthread嵌入式操作系统是国人自主研发的开源免费操作系统,其小巧便捷,对各种外设强大的支持,以及便捷的配置外设方法,使得他在众类嵌入式操作系统中脱颖而出。使用这种操作系统可以极大地减少物联网产品研发周期,加速产品上市。
1.2 课题国内外研究状况
美国趋势学家,杰里米里夫金说,目前已有近 50%的人类可能已经与互联网联系在一起了,未来的 25 年中,也许所有人都将会和互联网联系在一起。[2]这意味着每个人都可与互联网相联系,甚至成为物联网的一部分。物联网的基础便是网络的技术发展以及网络的普遍使用。这两点使得物联网在市场上既有技术支持又有广泛的市场需求。
但是这样市场对物联网产品有着新的要求,一方面需要物联网产品成本尽量低,一方面需要设备尽量的保证实时响应,同时对于研发物联网产品的公司而言,竞争激烈,所以需要尽量减少研发周期,快速抢占市场,但是减少研发周期又可能意味着产品的不稳定性。同时物联网产品会将多种设备接入到网络中,对于设备的实时响应,裸机程序的轮询法以及中断法,实时性以及工作效率不能很好的兼容。所以嵌入式操作系统便是必须的。嵌入式Linux系统想要做强做大要在以下问题方面有修改和更新,一是实时问题,二是内核代码大小,三是可靠性[3]。
市面上,常见的嵌入式操作系统有uc/os ,RTOS,freeRTOS,djyOS,以及RTthread。uc/os是一个嵌入式多任务实时操作系统,在1922年由Jean J。Labrosse编写[4],一种基于优先级的可抢占的硬实时内核,代码免费开源,不过这种操作系统对于没有基础的人,想要移植进入其他的嵌入式设备,比较繁琐。RTOS出现是为了迎合对系统的实时性要求严格的要求。跨系统移植该操作系统只要修改1%4%的代码,移植比较容易。FreeRTOS在RTOS基础上进行的改造,是一款轻量级的嵌入式操作系统,这也就意味着对嵌入式设备系统资源(比如RAM)存储的占用较少。FreeRTOS与uc/osIII,都支持优先级抢占和时间片轮转,不同优先级采用优先级抢占式调度,对于相同优先级采用时间片轮转调度[5]。djyOS是一款国产开源的操作系统,与其他操作系统以线程为调度对象不同,djyOS操作系统是以事件为核心进行调度的,更符合人的认知。但是知名度较小,对于各种嵌入式设备的bsp支持还不是很多。而RTthread是一款开源免费的国产轻量级操作系统,基于优先级的抢占式内核,可以保证实时性,轻量保证对系统资源不会过多地占用,开源免费可以降低开发嵌入式设备成本。对于主流的嵌入式设备都已经支持,并且对于一些常见的嵌入式设备已经移植完成放进bsp,这样省去自己移植的麻烦。并且该系统对于各类嵌入式设备外设都已经封装实现了代码,进一步减少开发时间。最后RTthread使用env来配置对应嵌入式设备的各种外设功能,使得其便捷远超其他任何嵌入式操作系统。在17年发布的3.0版本中,RTthread支持了完整丰富的中间层软件和IOT组件,商用支持所有主流芯片[6],目前RTthread已经发布了4.0版本。更加注重简易开发,内核裁剪,增加用户开发体验,开发各种小程序来使得开发嵌入式设备更加的便捷[7]。

原文链接:http://www.jxszl.com/dzxx/dzdq/557161.html