发新帖

[原创] 【STM32F407开发板试用体验】RTTDIY作品: RT-Thread Demo

[复制链接]
发表于 2018-11-14 01:45:48
| 2097 查看 | 0 回复
本帖最后由 robe_zhang 于 2018-11-20 15:41 编辑

【STM32F407开发板试用体验】RTT开发者大会DIY作品: RT-Thread Demo


这次试用目的很明确,就是做个RT-Thread的一个Demo,本来是展示RT-Thread 的,可是展会上一个单片机在哪里闪灯什么的,感觉没有人会去关注,所以就做了个涂鸦板,做了个界面,使用的RT-Thread + STemWin,最终效果还是不错的:
1,收到开发板没有屏幕,没有ST-LINk,就用自己4.3寸电容屏幕和ST-link,装好搞起:
1.png
2.png
2,一开始也不知道要做什么东东,有使用过其他的 freeRTOS,这个RT-Thread系统是第一次用,看了看怎么跑起来RT-Thread,花了两天时间,运行起来了。
然后然后又把板子驱动一点点搞定,LCD驱动,Touch驱动,才有了这个Demo的最初想法,就是做个触摸屏的涂鸦板,增加LED指示灯,增加音效,这个Demo才像个小项目了,觉得带有用户界面在展会上表现力会更好,使用STemWin又做界面,整体色彩是参考RT-Thread官网的色彩:浅绿色白背景,界面做出来效果还不错,至此最终的Demo才算定型,为了不让Demo单调,又新增的计算器功能,就是最终看到的Demo的样子,先看最终成品吧:
这个是RT-Thread 的色彩:
3.png
这个是Demo的色彩,是不是能以假乱真了?其实Demo是正版的,做这个项目时候RT-Thread官方的人是知道的,还给予了指导。
4.png
整机效果图,上电开机,没有问题会响两声“滴滴”,然后就进入这个主界面:
上面5个按钮,对应5个对话框,实现5部分功能:
5.png
点击About按钮,弹出的对话框,显示一些系统的信息:这个对话框大小和位置精心设计过,不大不小不上不下刚刚好:
除了涂鸦板是全屏显示,其他4个对话框都是这个位置和大小
点击OK按钮回到主界面
(这个颜色比较正,上面的图片,是我拍的偏色了,屏幕太亮周围太黑,不太好拍。)
6.png
点击主界面LED Blink 按钮,这里可以设置开发板上的两个LED指示灯,显示两个LED是否打开:
默认是开启的,可以在这里调整,点击单选按钮后立马生效,并且保存设置直到系统重启。
红色LED 2秒闪烁一次,绿色LED 是按照心率闪烁,1秒一次。
点击OK按钮回到主界面
7.png
点击主界面KEY SND 按钮,显示当前系统是否开启按键音效/触摸音效,默认是开启的:
通过单选按钮可以开关音效,立马生效,并且保存设置直到系统重启。
板子上的5个按键都是有音效的,按的时候滴一声,触摸屏幕上的按钮也有音效,点击时候滴一声。
8.png
点击主界面DRAW按钮,会进入到画图程序,并且是全屏状态,如下:
+/- 两个按钮是改变画笔的粗细,连续点击+按钮,画笔变粗,直到点击没有声音,此时已经是最粗了,-按钮也是,没声音就是最细。
change color 是调整画笔的颜色,有5个颜色可选,红绿蓝黄黑,change color 按钮的颜色就是当前画笔的颜色
ERASER 按钮是橡皮擦,可以擦除画错的东西
CLEAN 按钮是清除整个画板,重新开始画
EXIT 是退出画板程序,回到主界面。
这个屏幕是 4.3英寸电容屏,比较小,所以全屏显示
9.png
Change color 按钮的颜色显示当前画笔的颜色
10.png
点击ERASER使用橡皮擦功能,画笔是无效的,所以change color 变成 DRAW,擦除完了重新开始画,点一下DRAW 按钮,这个按钮就变成change color 了,可以开始画图了,再次点击这个按钮就是调整画笔颜色。
其实这几个按钮怎么显示也是精心设计的,看着按钮的显示,操作就好,比较好用,用专业的词语描述就是 人性化。
11.png
这个是画的一幅画,5种颜色,不同的画笔粗细,橡皮擦粗细。
12.png
点击主界面的Calculater,进入计算器程序,这个功能是临时增加的,比较简单,只有加减功能
13.png
这个是板子上的 IIC 跳线:

3,拍了个视频,稍后视频发出来了,在这里放个链接:
http://v.youku.com/v_show/id_XMzkxOTY5MTc4MA==.html?spm=a2h3j.8428770.3416059.1
4,Demo使用到的东西还是比较多的,用的cobemx 初始化所有外部设备,还是省了不少时间,使用的系统是RT-Thread,图形系统使用的STemWin V5.40,捡重点写写吧:
屏幕是MCU屏幕,挂载FSMC总线上,SDRAM也是挂载FSMC总线上,两个东西可以同时使用的,其实相当于分时复用FSMC,操作的时候又感觉不到分时复用,FSMC 按照BANK,NE分开的,全部硬件自动操作完成,LCD SDRAM 同时使用其实还是很简单的。
Touch 的驱动是参考正点原子的驱动,他使用的 IO 模拟 IIC,项目中跳线了,用的硬件IIC,效果一样样没啥区别,看touch手册极限速度是400Kbps,项目中就用的400Kbps,很稳定没啥问题,就是触摸检测不是很准确,还需要优化,不过项目中回避了这个问题,看不出来也感觉不到触摸准确不灵敏的问题。
RT-Thread 的系统是个RTOS,比较小也简单,但是驱动和linux 驱动框架很像,比较有意思,本Demo只用了内核部分,驱动没有按照RT-Thread框架写,以后有时间再研究这个驱动。
STemWin 主要是显示部分和Touch部分的适配,ST 的手册太简单了,有用的信息就一条,把CRC功能打开,其他的东西还是看emWin 的手册。
LCD适配比简单,本项目也是采用最简单省事的方法,实现读点和打点,所以界面切换的时候不流畅,有时间的话这里还是有优化空间的,并且优化空间巨大,效果也会很明显
Touch 适配也比较简单,主要是MultiTouch这一部分的使用,emWin 其实是有很多高级的功能,手势操作都是支持的,本项目也是采用简单省事的方法,只实现了单点点击,这个地方也是有很大发挥空间的,并且优化后效果会很明显。
这个Demo是要赶上11.17上海展会用的,只有半个月时间,再加上内容比较多,搞得很紧张,所有东西都是以简单使用为主,优化呀什么的全部没有做,其实项目中有的东西取舍是很重要的,也幸好进展顺利神速,才有了最终这个Demo。
最后感谢云汉社区试用的开发板助力,感谢RT-Thread官方对这个Demo的关注,感谢云汉社区编辑在展会上给大家演示这个Demo!!!




14.png
我要点赞 0

举报

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