给初学者 开源第一个
说明:以前建立了一个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
给初学者 开源第二个
说明:这个程序写的比较早,写的不是很好,也开源给初学者。
0. 支持USB虚拟串口向上位机传输数据。
1. 收音机的自动搜台,手动搜索。扬声器或耳机播放都可以。
2. 简单的温度,电压采集和背光的设置。
3. 背景颜色的设置。
4. RTC
给初学者 开源第三个
基于uCOS-II的USB虚拟示波器
这个虚拟的示波器做的很简单:
1. 直接添加了一个USB虚拟串口的驱动。波特率 = 115200
2. 波形的显示不是实时的,采集够1024个点数后,每秒传输100个点。
3. 所以板子下载程序后没有出现波形,需要等会。
4. VC6.0 我不怎么会用,照葫芦画瓢随便搞了个。
总结:这个程序很适合用来显示温度曲线什么的,要是会做USB上位机驱动的话,做个实时的还是有戏的,
测试过USB -> PC的速度可以到到600KB/S,打开双缓冲好像意义不大,但是从PC -> USB在开启双缓冲的情况下可以达到1MB/S,
由于不会上位机,就把这个东西搁置了。
转载
|