没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
# 基于Arduino的开源手机设计
# 实验报告
***
>[代码仓库地址](https://gitee.com/ricardo-ren/vsop)
>本篇文档采用Markdown编写
## 实验设计
实验的总体目标是设计一个简单的非智能机操作系统。在设计时,这个操作系统应能提供显示,连接WiFi,展示时间等的基本功能,可以使用开发板上的多种传感器,与GPRS芯片正常通信来使用相关的功能,并且构建一系列通用的函数来时后续的应用程序可以方便的使用操作系统提供的相关功能。
***
## 设计思路
首先是跟随着课程的进度,逐个验证相关模块的知识与可行性。
在这期间被验证的模块有:显示屏的使用,计步器的使用,通过软串口与GPRS芯片通信的部分,对于键盘的使用,WiFi部分的使用等等。
在了解了以上模块的相关知识和实际使用过之后,正式开始设计整个程序。
我首先设计的是计步器与键盘这两个传感器的相关函数。这两个传感器都具有着相同的特点,他们在是使用前被需要初始化,于是我设计了相关的初始化函数,他们都是需要在程序的主循环中反复调用的函数,于是我分别设计了一个函数,计步器的轮询函数会返回当前已经行走了的步数,按键的轮询函数会返回当前按下的键(在没有键按下的情况下的返回值是字符'F',这个值在我的程序中是相当重要的一个值)。
由于键盘上只有阿拉伯数字的输入,我又设计了一个函数用于实现拉丁字母的输入,使用一个二维数组来存储所有的字母,大数组里面是九个小数组,对应键盘上的九个数字键,通过两次按键来输入一个字母,虽然输入的效率有一点低,但是在这样一个功能比较有限的手机已经十分有用了。
显示屏相关的函数。这里我没有使用课程中使用的TFT_eSPI这个库,可能由于PlatformIO中下载的库版本问题,我使用这个库可能会导致Arduino反复重启,在串口中可以发现重启的”rst cause“是2,查阅相关手册得知这是外部复位或者是是睡眠(deep slepp)醒来,在网络着多方搜集资料无果后,通过排除法验证时这个库引发的问题,于是使用Adafruit_GFX这个库代替之。在深入研究了相关的显示库函数之后,我只抽象出了两个函数,清屏与显示一段文字的函数。抽象出这两个函数是因为我认为这两个函数很容易被复用。而且在代码中我是采用了自己抽象的函数与相关的库函数混合使用的方式来编写代码,这样可以最大程度的保证代码的简洁性与显示时的灵
点击阅读更多
资源评论
Unique先森
- 粉丝: 23
- 资源: 327
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功