学习完ucossii,当然不能说学得很精,看见UCGUI心里痒痒的,于是心里特想弄懂。其实裸体条件下移植并不是件很困难的事,同样,ucossii条件下也不困难,移植的资料网上也有许多,这个网站有个是“touch”的实例给我启发很大,最主要的是它也是在MINI板上跑的,具体忘记链接及作者了,大家搜索下。现将自学期间一些问题与大家分享,希望有所借鉴。
其实初学很希望有个和自己硬件能配套的例子,但与MINI板配套的例子实在是少,因为许多的LCD他们都用FSMC,而不是寄存器控制版本,又有许多的是库函数版,对初学者来说一个地方出错,可能就卡在那,没有效率。我本想用奋斗的例子移到MINI 板,但最后放弃,没太多时间去琢磨,毕竟学这玩意大部分还是靠业余时间。后面我将我自己的这个很烂的实例分享出来,声明是菜鸟学习用的。
其功能是: 实现文本显示,实现画2D图,画了一个圆,也实现了BMP图片的显示,但被我删掉了这个功能();实现按钮控件,但仅仅是初级功能,还没有touch部分功能。但你会了这些,还怕其他吗?
1)你可以依葫芦画瓢移植个ucgui先将中文手册第四章“hellow world”显示出来,这个功能并不需要许多资源,程序也就是一句而已;
2)其次你可能会碰到原有的LCD头文件与UCGUI里的LCD头文件冲突的问题,我采取的是极端的方式,干脆将原有的原子heardware文件例子里的LCD头文件统统删掉。为什么还要原先的呢?反正ucgui能完成了,要他干嘛,以后要用以后再说。
3)我在实现按钮控件功能的时候一直没反应黑屏,后来加个回调函数就实现了,例子就是这样实现的。
4)移植时除了CONFIG那几个文件你需要注意,并修改外,另外在GUI_X文件夹里,如果是裸体版,你只需添加GUI_X.C;如果是UCOSSII你需要添加GUI_X_UCOS.C.
4)分享一些我认为对初学者有点用的东西。
5)例子仅仅是几个简单的功能,老鸟们可以闪的哦,我觉得学习最主要的是知道原理及过程,所以才发此贴。
写得凌乱,希望对大家有帮助。
|