4308|8

19

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【DIY手机】+ xijiele [复制链接]

这个其实是大学毕业设计的时候做的,看到这个活动的时候有点晚了,虽然很早就能把帖子发出来的,不过毕设的时候仅实现几个简单的功能,像接打电话、收发短信、时间日期温度气压显示及设置。准备再添加几个功能,完善一下一些BUG后再发帖的,不过还要工作,没多少时间,截止时间也到了于是只有先放出之前毕设的版本了,如果后面完善了再放出后续的版本了。毕设的版本没有用OS,后来完善的版本目前已经加入了FreeRTOS(有了OS多任务处理起来还是要方便很多),修复了原有程序的部分BUG,添加了文件浏览器功能,目前在添加音乐播放功能。好了下面进入正题:

硬件概览:
硬件部分主要包括MCUGSM模块、触摸屏、SD卡、数据FlashDS1302时钟模块、BMP085温度气压传感器等。MCU用来作为核心控制单元,保证系统的正常运行,触屏用来显示界面与获取输入操作,SD卡用来存储需要加载的字体文件和界面相关资源文件,数据Flash用来存储字库,DS1302用来为MCU提供实时时钟日历信息,BMP085用来采集温度、大气压。为了节约成本和时间,整块主板直接采用旺宝STM32火牛开发板,该板板载资源丰富,基本包含了上述模块(不包括GSM模块、DS1302模块和BMP085模块),省去了硬件详细设计与制作环节,简化了开发流程。GSM模块采用TC35模块。整体硬件实物连接图如下:

运行时图片:


软件总体设计:
软件整体框架方面,系统并没有用到实时操作系统,而是采用定时器中断进行时间片轮询方式进行任务处理。系统的GUI界面采用Microchip的图形库设计。该图形库总体代码量较少,采用消息处理机制比较容易理解,移植起来比较方便。
基于STM32的标准外设驱动采用CooCoxCoX外设库编写,该外设库灵活易用,相比于直接寄存器操作,简化了开发流程,从而能把更多时间放在系统应用程序上。
软件开发平台起初是采用CooCoxCoIDE集成开发环境,该IDE具有类似Eclipse开发界面,在代码编辑上比较方便。后来由于该IDE对调试支持的不是很好,换到IAR开发平台。(至于为什么选择用CooCox是因为做毕设的时候在英蓓特的CooCox组实习,模块驱动也是自己基于这个库写的)。
    整个系统在复位后先对各个外设初始化,并配置、开启系统节拍定时器中断,这些初始化过程都会在屏幕上显示相应初始化信息以查看模块初始化是否成功。然后初始化GUI,进入主循环,主循环中仅负责事件解析(包括触屏事件和TC35消息)与界面的绘制。定时器中断中根据中断计数判断,每隔一定时间进行一次触屏触摸事件扫描、TC35模块消息扫描及系统时间更新。由于中断服务程序执行时间不能太长,否则会造成定时不准确甚至中断服务程序以外的程序没有时间执行,因此那些比较耗时的程序段就放在主循环中执行,比如上述的界面绘制函数。
    软件模块部分,汉字的显示、拼音的输入参考的openedv论坛正点原子的汉字库及拼音查表方法,SD卡文件系统使用fatfs。字库起先存储在SD卡或U盘,字库更新程序将字库更新到SPI Flash后供系统显示用。
    不知道需不需要详细介绍一下各个模块和工作原理,不过相信大家看数据手册和下面放出的源码应该会大致了解,下面就直接上效果图了。注:以下系统界面截图采用自己编写的LCD一键截图程序,从LCD读取每个点颜色值,保存到bmp文件。


最新回复

非常感谢你的源码分享。特别是我注意到的你的GUI也许是和我用的那种很相似的时候 我特别想看看别人是怎么实现的。   详情 回复 发表于 2015-1-18 13:16

赞赏

1

查看全部赞赏

点赞 关注(1)
 

回复
举报

19

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
本帖最后由 xijiele 于 2014-7-6 23:23 编辑

源码:
bishe.rar (1.32 MB, 下载次数: 18)
很烂的代码,高手就不要见笑了。当时设计的时候由于没有太多时间也没有耐心,界面美观上没有花多少工夫,丑就不说了。代码上最难调的还是GSM模块的通信和短信部分,以及GUI界面的设计和消息响应逻辑。
有什么问题欢迎拍砖。

至于为什么没有弄个视频演示,其实是因为现在的程序和硬件不知道为什么从SD卡读的图片显示一小半后面就是拖痕,但文件的读取又没有出错,可能是我把哪里改坏了吧,另外SD卡也时常初始化失败,但是一旦初始化成功后就一直可用,除非断电。所以本来界面就丑再加上图片显示出问题,就不弄演示了,那天弄好后再传上来吧。

开源硬件,我差点漏掉了原理图
火牛开发板原理图(FireBull Schematic).pdf (117.95 KB, 下载次数: 8)
 
 

回复

110

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
感觉是个很大的工程!
听说毕设要一个人做简直不能更忧伤。。
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

4
 
做得很不错。我现在用的是STC的8位单片机。只做了基本的收发短信接打电话功能。而且没有输入界面,只有一个1602的屏显示。很佩服你。
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(初级)

5
 
好作品,   佩服。。
个人签名[url=file:///C:/Documents and Settings/Administrator/桌面/nbo_LnB7q0bc0QQnzYkHuYkVp9mw8e12e16dB9PguF
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

6
 
wu1169668869 发表于 2014-7-7 02:12
感觉是个很大的工程!
听说毕设要一个人做简直不能更忧伤。。

这个就是我一个人做的啊,当时我在公司实习,另两个一组的在学校,指导老师就让我单独选做一个跟实习内容相关的毕业设计,然后就做了这个。工程量其实也不算大,首先底层驱动调试好,尽量不要有BUG,然后上层界面才能顺利的调用这些驱动实现功能。
 
 
 

回复

1461

帖子

1

TA的资源

纯净的硅(中级)

7
 
佩服,能有信心去做这个,而且导师还同意了。现在的导师都是想的做出来,好过毕设。
 
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

8
 
感谢楼主的分享
个人签名http://openmcu.taobao.com]77[/url]
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

9
 
xijiele 发表于 2014-7-6 22:33
源码:

很烂的代码,高手就不要见笑了。当时设计的时候由于没有太多时间也没有耐心,界面美观上没有花多少工夫,丑就不说了。代码上最难调的还是GSM模块的通信和短信部分,以及GUI界面的设计和消息响应逻辑。
有什么问题欢迎拍砖。

至于为什么没有弄个视频演示,其实是因为现在的程序和硬件不知道为什么从SD卡读的图片显示一小半后面就是拖痕,但文件的读取又没有出错,可能是我把哪里改坏了吧,另外SD卡也时常初始化失败,但是一旦初始化成功后就一直可用,除非断电。所以本来界面就丑再加上图片显示出问题,就不弄演示了,那天弄好后再传上来吧。

开源硬件,我差点漏掉了原理图
非常感谢你的源码分享。特别是我注意到的你的GUI也许是和我用的那种很相似的时候
我特别想看看别人是怎么实现的。



个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表