中科因仑“3+1”工程特种兵精英论坛
标题:
送给初学者高手勿拍STM32 UCOS+UCGUI 3寸 4.3寸 7寸屏的简单应用(1)
[打印本页]
作者:
enlernzhang
时间:
2014-3-18 11:50
标题:
送给初学者高手勿拍STM32 UCOS+UCGUI 3寸 4.3寸 7寸屏的简单应用(1)
本帖最后由 enlernzhang 于 2014-3-18 12:00 编辑
给初学者 开源第一个
说明:以前建立了一个UCGUI的群,群里同学要求做个UCGUI的简单应用,现在给初学的朋友开源两个
这个东西字前段时间搞过,由于驱动有所改动,还是花了三个晚上(10点到凌晨3点),
白天还得搞别的,只能晚上搞了,感觉调试起来还是有一些大大小小的问题,暂时先
放一放,熬夜有点累,后面再弄,有点忙不过来了。
这个程序写的比较规范,我也是学习的armfly开发板的,规范的程序写法要养成习惯,程序写的架构也非常好,向大家推荐
。
硬件:STM32F103VET6核心板
CPU : STM32F103VET6/ LQFP100 (可以换 STM32F407VGT6)
RS232串口1个
8MB 串行SPI1个
4.3寸和7寸屏接口(RA8875),UCGUI底层全部采用2D硬件绘图
3个按键 1个摇杆,4个LED灯
软件:MDK4.23
功能介绍(基本能利用的资源都用上了):
1. 从SD卡读取图片作为背景,然后做三个个图标,暂时只用了两个图标。
2. 图标一实现SD卡U盘的连接和断开,以及SPI FALSH的简单测速,
3. 图标二实现官方的DEMO,运行完,回到主界面。
4. 摇杆用于鼠标移动。
5. 蜂鸣器用于按键和控件按下时鸣响。
6. 按键一用于打印系统信息,按键二用打印任务堆栈使用情况,按键三用屏幕截图。
7. 串口用的是5个串口FIFO,支持RS485
8. GUI的底层全部采用硬件2D绘图
9. 暂时用4.3寸调试的,7寸的话,要改写触摸校准。
10.SPI FLASH驱动支持 SST25VF016B 、 MX25L1606E 和 W25Q64BVSSIG
11. TFT驱动支持 SPFD5420A、OTM4001A、R61509V RA8875
12. 7个按键的FIFO
调试中存在的BUG(有时间了修正一下,暂时还没解决):
1. SD卡U盘,读取数据没问题,写入数据容易存在错误。
2. UCGUI的底层画线函数,用硬件2D绘制,有时存在错误,矩形填充不存在问题,可以使用。
3. 现在FatFS的读取不能超过512字节,不知道哪里出问题,这个程序在armfly的V2,V3开发板上
运行是没问题,区别就是RA8875的驱动不是用的我用的那个,FATFS的写数据存在问题,所以
截图功能就不能用了,后面首先把这个问题解决一下。
4. 这个问题也不算是BUG,触摸和TFT屏都是使用fsmc,所以要解决资源共享的问题,我这里没有采用
信号量的方法(推荐这种,简单有效),armfly例程里面是采用的在每个底层函数里面设置一个变量,
也起到一个互斥信号量的作用,为了不更改驱动函数,我也采用这种方法,实测也可以的。
每个100ms打印的消息
\ #Ticks: 866891 CPU Usage : 07%
按键一打印任务使用情况
ST STM32 (Cortex-M3)
Prio Used Free Per Taskname
31 16 112 12% uC/OS-II Idle
30 16 112 12% uC/OS-II Stat
29 25 103 19% uC/OS-II Tmr
1 36 476 07% Start Task
3 73 951 07% Keyboard
2 44 468 08% User I/F
4 122 902 11% UCGUI
按键二打印系统情况
ST STM32 (Cortex-M3)
uC/OS-II : V2.92
TickRate : 1000
CPU Usage : 04%
CPU Speed : 72 MHz
#Ticks : 866790
#CtxSw : 434172
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4