OpenEdv-开源电子网

标题: uCGUI+uCOS(FreeRTOS或RT-Thread)+FatFs+USB+LwIP(UIP) RA8875 7寸图片欣赏(开源一个小应用) [打印本页]

作者: Eric2013    时间: 2012-10-8 16:02
标题: uCGUI+uCOS(FreeRTOS或RT-Thread)+FatFs+USB+LwIP(UIP) RA8875 7寸图片欣赏(开源一个小应用)
帖子的下面有上传的例子和资料供大家下载
大家有uCGUI方面的问题,可以在这个帖子给我留言,或者新建一个贴子,告诉我。有时间我会及时回复的。

2012.10.01

1. 背景图片任意设置,从SD读取图片存到NORFLASH,需要的时候用SRAM读取,然后更新图片。
2. 现在只搞了BMP JPG(解码移植的FatFs作者的那个,GUI自带的没调试出来),GIF(这个东西相当
    吃内存,17K内存占着)。
3. 触摸实时校准。
4. 温度显示采用GUI的绘图控件,这个控件真是个好东西,用好了还是很爽的。
5. 可以用摇杆控制鼠标,当绘图一直占有FSMC的时候,触摸基本不能用,用这个就好了,如果能用
    USB鼠标还是很好的。
6. 搞透明窗还是有点吃力,毕竟得一个点一个点的来,这个对于STM32的FSMC来说就是晴天霹雳。
7. 简单的加入系统设置功能,但不完善。
2012.10.18:
1. 增减一个小游戏。
2. 增加信号发生器功能(正弦波,方波,锯齿波,三角波,噪声)。
2012.10.21:
1. 增加DS18B20温度显示
2. 增加PS2鼠标驱动,现在可以像用电脑那样操作鼠标,感觉很爽(抄袭原子兄,表示感谢)

2012.10.24:
增加FM收音机功能。
1.支持自动和手动搜索。
2.FM: TEA5767 DAC: WM8978

2012.10.29:
增加串口FIFO+DMA(2个串口+1个485)
1. 参考资料见71楼。
2. 基于GUI的串口调试助界面手还在制作中。
3. 修改RTC不能正常启动的BUG。
4. 修改PS2鼠标有时出现死机的现象。
5. 后面的时间有点紧了,以后有时间就做做。
2012.11.02:
1. 增加汉字显示,支持任意字体,任意大小
2. 可以将字体存到外部FLASH,也可以存到SD卡,(在此对 “洋洋kan世界” 兄弟表示感谢)

2012.11.10:
1. 开源一个小应用,具体见97楼
   
[开源]UCOS2.92+UCGU3.98(源码)I+FATFS+SD卡U盘+RA8875(UCGUI底层硬件2D绘图,简单应用,规范程序)
(, 下载次数: 123)
(, 下载次数: 147)
(, 下载次数: 164)
(, 下载次数: 166)
(, 下载次数: 117)
(, 下载次数: 160)
(, 下载次数: 179)

(, 下载次数: 101)
(, 下载次数: 159)
(, 下载次数: 106)
(, 下载次数: 144)
(, 下载次数: 154)
(, 下载次数: 167)
(, 下载次数: 176)
(, 下载次数: 144)
(, 下载次数: 98)
(, 下载次数: 147)
(, 下载次数: 103)
示波器的简单说明
:
1.  已经将STM32的ADC快速交替采用超到3.15M,任意设置采样频率,基本不会卡机(出现卡机是由于
     需要进行FFT计算和显示的方法),可见用RA8875的硬件来画波形,效果还是很明显的。
2.  自己焊接了一个程控电路和一个电源的电源电流采集电路。
3.  这个是其中的一个版本,还有FFT的定点,浮点实现,FIR,IIR, 自适应滤波,中值滤波,移动平均滤波,
     以及小波的多分辨率(程序都已经实现)。学了半年的小波,打了半年的酱油,参考别的人程序,才写
     了个小波的多分辨率。觉得自己不是搞数字信号处理的料。
4.  波形都是用自带的DAC产生的。
(, 下载次数: 110)
(, 下载次数: 108)
(, 下载次数: 185)
(, 下载次数: 169)
(, 下载次数: 158)
(, 下载次数: 164)
(, 下载次数: 166)
(, 下载次数: 71)

(, 下载次数: 155)

(, 下载次数: 127)

(, 下载次数: 143)

(, 下载次数: 164)

(, 下载次数: 173)

(, 下载次数: 171)

(, 下载次数: 160)

(, 下载次数: 163)





作者: Eric2013    时间: 2012-10-8 16:03
原子兄的论坛不错啊,贴出的东西排版挺舒服的。
作者: syhx8262516    时间: 2012-10-8 16:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: Eric2013    时间: 2012-10-8 16:05
视频好像没有显示出来 那就来个连接吧
http://v.youku.com/v_show/id_XNDQ1MzU3NjQ0.html


作者: Eric2013    时间: 2012-10-8 16:06
回复【3楼】syhx8262516:
---------------------------------
我还没整理好 就有人回复了 谢谢兄弟顶贴
作者: 兀本    时间: 2012-10-8 16:34
顶。。。

作者: angler12    时间: 2012-10-8 16:51

牛人!!!


作者: feilaifeng123    时间: 2012-10-8 17:22
强大
作者: Eric2013    时间: 2012-10-8 18:09
回复【6楼】兀本:
---------------------------------
O(∩_∩)O谢谢顶贴
作者: Eric2013    时间: 2012-10-8 18:09
回复【7楼】angler12:
---------------------------------
O(∩_∩)O谢谢顶贴
作者: Eric2013    时间: 2012-10-8 18:10
回复【8楼】feilaifeng123:
---------------------------------
O(∩_∩)O谢谢顶贴
作者: 楚地狂生    时间: 2012-10-8 20:03
回复【楼主位】Eric2013:
---------------------------------
楼主是否能贴个代码看看????
作者: Eric2013    时间: 2012-10-8 20:54
回复【12楼】楚地狂生:
---------------------------------
这个嘛。。。。 兄弟请看标题 呵呵
作者: 科科1987    时间: 2012-10-8 21:08
ding~~
作者: 正点原子    时间: 2012-10-9 01:48
1,美女很养眼.
2,代码都是外链,最好是直接上传我们论坛.
3,楼主技术不错,希望以后多来我们论坛逛逛.
4,再次欢迎.
作者: Eric2013    时间: 2012-10-9 07:52
回复【15楼】正点原子:
---------------------------------
谢谢原子哥夸奖,心里面哇哇的爽,以后有好东西一定来这里上传一份
作者: lsj9383    时间: 2012-10-9 08:31
好牛逼啊,一直想自己抽时间做个属于自己的界面、、
作者: ye781205    时间: 2012-10-9 09:26
要是有示波器源码就好了
作者: 无名氏    时间: 2012-10-9 10:21
图片不错。
处理的效果很好看。。。

作者: 古月    时间: 2012-10-9 12:59
要逆天了~~
作者: smithlin    时间: 2012-10-9 13:32
好东西
作者: pandy    时间: 2012-10-9 21:29
楼主也蛮强大的
作者: lm959680    时间: 2012-10-9 22:52
这个组合 绝~~~
作者: Eric2013    时间: 2012-10-21 11:57
2012.10.21:
1. 增加DS18B20温度显示
2. 增加PS2鼠标驱动,现在可以像用电脑那样操作鼠标,感觉很爽

参考原子的PS2驱动,终于将PS2鼠标驱动加上,用鼠标感觉比用触摸还爽。

作者: wolfdong7    时间: 2012-10-21 16:22
谢谢LZ上次帮我解决问题。
作者: Eric2013    时间: 2012-10-21 21:19
回复【25楼】wolfdong7:
---------------------------------
没事,以后又问题 提出来 一起交流
作者: zsk    时间: 2012-10-21 23:43
这是要逆天啊
作者: lixupeng    时间: 2012-10-22 10:39
好强大 mark
作者: shaotianyu12    时间: 2012-10-22 12:47
mark
作者: Tardis    时间: 2012-10-22 14:23
兄弟逆天了,继我出的Win98后又一给力创举,兄弟居然XP都做出来了,啥时候弄个Win7?
作者: Eric2013    时间: 2012-10-22 16:16
回复【30楼】Tardis:
---------------------------------
兄弟过奖了,我就是想通过在ucos+ucgui上面建立更多的任务,积累一些多任务管理的经验。
作者: muc520    时间: 2012-10-22 22:01
请问下大侠的图标背景的透明效果怎么处理的呀?
作者: Tardis    时间: 2012-10-23 08:23
回复【31楼】Eric2013:
---------------------------------
做的这效果,可以逆天了,大屏的功劳啊~~~
作者: Eric2013    时间: 2012-10-23 13:49
回复【33楼】Tardis:
---------------------------------
嗯,是的,学GUI的话,还是大屏用的比较爽。
作者: Tardis    时间: 2012-10-23 15:25
回复【34楼】Eric2013:
---------------------------------
7寸刷屏貌相不怎么快
作者: Eric2013    时间: 2012-10-23 16:29
回复【35楼】Tardis:
---------------------------------
  我用的是RA8875,综合性能比SSD1963要强.
(1)刷图片不快,用外部RAM刷,每秒能刷2帧就很不错了。
(2)要是刷颜色,那是相当的快,主要是它有个BTE的颜色填充功能。
(3)支持硬件的2D绘图,用在GUI上,速度提高不少。
 (4 )字库都省了,外接一个高通的字库芯片,字体放大缩小很方便。

以前用uCGUI刷到3千万点。

3千万/800/480 =78    基本每秒可以达到78次。
作者: Tardis    时间: 2012-10-23 17:13
回复【36楼】Eric2013:
---------------------------------
高通的字库芯片貌相字不全
作者: whomcfly    时间: 2012-10-23 17:27
高人!
今天刚买了STM32例说
作者: zq6220c    时间: 2012-10-23 18:49
欣赏了
作者: 晓宇_2012    时间: 2012-10-23 19:40
这个必须要顶,很强大....还想请教下楼主怎么样提高刷图片的时间,我的3.5寸的屏,从sd卡读图片,再显示到屏幕上,应该也快要1s了,暂时还没弄ucos和ucgui
作者: lrjray    时间: 2012-10-23 21:38
楼主牛啊,先下来看看

作者: Tardis    时间: 2012-10-24 11:24
回复【40楼】晓宇_2012:
---------------------------------
加ram
作者: 晓宇_2012    时间: 2012-10-24 11:47
回复【42楼】Tardis:
---------------------------------
外部ram吗?可以给个大概的传输思路给我吗?比如先读sd卡(sdio)传到xx,再从xx(xx)传到xx....等的呢?
作者: Tardis    时间: 2012-10-24 16:10
回复【43楼】晓宇_2012:
---------------------------------
对,请参考原子战舰板例程,加ram一般做显存用的,如果给我,我肯定做显存。
作者: Eric2013    时间: 2012-10-24 17:25
2012.10.24:
增加FM收音机功能。
1.支持自动和手动搜索。
2.FM: TEA5767 DAC: WM8978

作者: haoyu729    时间: 2012-10-24 22:23
强大呀!看的不想走了!
作者: HEYsir    时间: 2012-10-25 00:16
我,我服了!好吧!东西我就先拿走了。感谢啊!
作者: dong    时间: 2012-10-25 08:30
回复【47楼】HEYsir:
---------------------------------
好东西,谢谢楼主,继续啊,等............................
作者: 无名氏    时间: 2012-10-25 08:42
谢谢。楼主板子是安富莱的?V2.0还是V3.0?

作者: shaotianyu12    时间: 2012-10-25 09:20
mark~
作者: Eric2013    时间: 2012-10-25 09:21
回复【49楼】无名氏:
---------------------------------
都有,都可以跑
作者: 无名氏    时间: 2012-10-25 09:27
回复【51楼】Eric2013:
---------------------------------
再次谢谢楼主。
作者: 简翟    时间: 2012-10-25 11:01
好强大啊!
作者: zbh2012000    时间: 2012-10-25 14:34
厉害!
作者: Eric2013    时间: 2012-10-25 16:42
回复【54楼】keyway:
---------------------------------
可以的,没问题
作者: Eric2013    时间: 2012-10-25 16:43
回复【56楼】keyway:
---------------------------------
刷颜色的话,RA8875有专门的指令,给个指令就刷完了,刷图片和普通的屏没什么区别。
作者: Eric2013    时间: 2012-10-25 19:01
1.  是的,读取的慢是一方面。要是算上从SD卡读取的时间,1秒能刷一张就很不错了。
2.  还有一个原因就是FSMC的速度太慢,可以这么简单的来算一下,我不知道这么算是否正确
     IS61LVXXX                     速度  8,10,12ns
     EM681FV16AU-55LF        速度 55ns
     55ns 相当于 18MHz  而FSMC的速度能跑多少,能不能跑10MHz?
     
    以前测试过SPDF5420控制器的400*240 TFT屏,在UCGUI上面测试最高才800万点(偶尔才这么高,平时就是600万)
    800万点,简单的算一下也就是8MHz。
    
    EM681FV16AU-55LF  应该足够他用了。
    

作者: 正点原子    时间: 2012-10-25 19:55
回复【60楼】Eric2013:
---------------------------------
STM32F1的FSMC真不咋地...
5M的速度就不错了,还没8M。
作者: dong    时间: 2012-10-25 20:59

请教楼主一个问题:

            emWIN5.12 和 UCGUI3.9有什么区别? 都是图形处理的,看一下指令,几乎是一样的,是一个东西,两个名字?
作者: Eric2013    时间: 2012-10-25 21:30
回复【63楼】dong:
---------------------------------
emWin 是Segger公司的,
UCGUI  是Micrium公司的,
 
同样的东西,在不同的公司名下,叫的方式不一样

作者: Eric2013    时间: 2012-10-25 21:32
回复【62楼】keyway:
---------------------------------
外接的NORFLASH SRAM  RA8875都要用FSMC 速度要协调 要不切换还得重新设置,
所以就取最慢的那个作为标准。
作者: 正点原子    时间: 2012-10-25 22:10
回复【62楼】keyway:
---------------------------------
测试了,最快就是4.5Mhz左右的WR频率。
不知道是我配置问题还是什么,我用示波器测试了模式A,模式B,最快都是4.5M左右。
作者: dong    时间: 2012-10-26 00:28
回复【64楼】Eric2013:
回复【63楼】dong: --------------------------------- emWin 是Segger公司的, UCGUI  是Micrium公司的,   同样的东西,在不同的公司名下,叫的方式不一样 
---------------------------------
原来如此。

十分感谢楼主,能够及时给予解答!
作者: 正点原子    时间: 2012-10-26 21:13
回复【68楼】keyway:
---------------------------------
理论上是这样的,实际呢?
STM32吹IO速度50M,你能输出50M的方波?
我实测就是4.5M,上不去了.

作者: 正点原子    时间: 2012-10-26 21:13
如果你有代码,我可以免费帮你测试下,呵呵.我也想知道是我代码问题,还是STM32本身就那样了.
作者: yuyang    时间: 2012-10-26 22:02
万能的主啊,哥们到神马时候才有这么NB啊。。
作者: Eric2013    时间: 2012-10-29 11:53
两个可供参考的资料一个是armfly开发板的,还有个是amo论坛的。
1. armfly开发板的比较好理解,而且简单易用,非常推荐,比如按键检测,触摸检测,USB串口都可以用。
2. amo电子论坛的这个搞的就有点复杂了,我将其简化实现了,可以实现同样的功能

修改记录
3. 如果使用UCOS的话(不使用的话,将内存管理函数移植出来),直接使用自带的内存管理
    就可以实现,貌似不用搞成环形队列,

4. 串口发送以前计算需要的内存块数,然后申请内存块,启动DMA。当然也需要一个指针数
    组来指向申请的内存块。

5. DMA每用完一个内存块,换给内存分区,内存管理函数可以将其自动加入到空闲块里面,
    然后更新空闲块链表。
这样内存块就能及时的释放,从而得到有效的利用。

  所以我觉得使用UCOS的内存管理函数的话,直接用一个指针数据代替环形队列就可以了。

作者: Eric2013    时间: 2012-10-29 11:55
2012.10.29:
增加串口FIFO+DMA(2个串口+1个485)
1. 参考资料见71楼。
2. 基于GUI的串口调试助界面手还在制作中。
3. 修改RTC不能正常启动的BUG。
4. 修改PS2鼠标有时出现死机的现象。
5. 后面的时间有点紧了,以后有时间就做做。

作者: Eric2013    时间: 2012-10-29 12:18

STM32串口驱动(拼音检索测试通过)(环形队列+内存动态分配+DMA)

http://www.amobbs.com/thread-4516795-1-1.html
作者: Eric2013    时间: 2012-11-1 10:24
回复【75楼】keyway:
---------------------------------
这几天我就会弄一个的,板子用armfly新做的核心板 103VET6 和 407VGT6
屏的话用RA8875驱动的7寸,4.3寸,还有个SPFD5420驱动的3寸屏。
核心板还没到,到了的话,我做一个在论坛公布。
作者: Eric2013    时间: 2012-11-1 11:29
回复【77楼】keyway:
---------------------------------
不是, 这个是核心板 ,为了配套RA8875的屏做的,这个核心板支持407VGT6和103VET6互换的。

和那个要做的F4开发板没有关系。F4的板子好像是用407IGT6吧。


作者: 郭震2009    时间: 2012-11-1 12:59
厉害...  楼主是业余做的吗?..   
作者: Eric2013    时间: 2012-11-1 16:19
回复【79楼】郭震2009:
---------------------------------
有时间了就做一下。
作者: Eric2013    时间: 2012-11-2 21:08
2012.11.02:
1. 增加汉字显示,支持任意字体,任意大小
2. 可以将字体存到外部FLASH,也可以存到SD卡,(在此对 “洋洋kan世界” 兄弟表示感谢)

作者: 千年耗子屎    时间: 2012-11-2 21:19
太厉害了!顺便问一下RA8875能控制5寸TFT显示屏吗?
作者: 无名氏    时间: 2012-11-3 11:28
回复【81楼】Eric2013:

2012.11.02:
 1. 增加汉字显示,支持任意字体,任意大小
2. 可以将字体存到外部FLASH,也可以存到SD卡,(在此对 “洋洋kan世界” 兄弟表示感谢)

---------------------------------
在那个例程里?谢谢。
作者: Eric2013    时间: 2012-11-3 13:09
回复【82楼】千年耗子屎:
---------------------------------
支持 最大支持800x480的分辨率
作者: Eric2013    时间: 2012-11-3 13:10
回复【83楼】 无名氏 :
---------------------------------
按这个方法就可搞定
https://www.openedv.com/posts/list/9736.htm?fromAll=0

作者: embeddedman    时间: 2012-11-4 16:00
请教楼主,我今天调试ds18b20的驱动,不带以太网和rtos的情况下是好用的,添加了lwip和freertos时操作ds18b20就卡死了。
细看代码发现ds18b20驱动的延时用的是八分频,而freertos移植的时候设置为10ms产生一个systick中断。
这两者明显有冲突,怎么解决,能给点建议吗?
作者: Eric2013    时间: 2012-11-5 11:48
回复【86楼】embeddedman:
---------------------------------
我用的是原子提供的delay_us() 很好用,系统也稳定。
你也可以看一下。
作者: embeddedman    时间: 2012-11-5 16:00
回复【81楼】Eric2013:
2012.11.02:1. 增加汉字显示,支持任意字体,任意大小2. 可以将字体存到外部FLASH,也可以存到SD卡,(在此对 “洋洋kan世界” 兄弟表示感谢)
---------------------------------
Hello,Eric2013 兄,任意字体任意大小,这是怎么做的啊?
作者: Eric2013    时间: 2012-11-5 16:15
回复【88楼】embeddedman:
---------------------------------
加载各种大小,各种样子的的点阵字体啊,然后再UCGUI上显示就可以了。
作者: embeddedman    时间: 2012-11-5 16:28
回复【89楼】Eric2013:
---------------------------------
回复【89楼】Eric2013:
回复【88楼】embeddedman: --------------------------------- 加载各种大小,各种样子的的点阵字体啊,然后再UCGUI上显示就可以了。
---------------------------------
还是点阵是吧?STM32上有没有研究过用矢量字库啊?
作者: embeddedman    时间: 2012-11-5 16:46
刚才看了,只有v4以后的ucgui版本才支持矢量字库,可是v4版本到哪去下载啊?
作者: Eric2013    时间: 2012-11-5 18:09
回复【90楼】 embeddedman :
---------------------------------
       点阵汉字的原理同时也决定了它的缺点, 他不具有放大特性, 因为它的显示是基于被定死的点阵,
放大后, 会产生明
显的锯齿,非常的难看, 当然, 可以进行一些光滑处理, 但基本上没有多在的改观.但
点阵汉字简易, 对于复杂汉字, 它比矢
量显示汉字法更快.

矢量显示是基于记录汉字的笔化的. 对于简单的汉字它比较占优势, 容易放大处理. 但对于复杂
的汉字, 表示起来, 则笔化太多..复杂.


作者: Eric2013    时间: 2012-11-5 18:18
回复【91楼】embeddedman:
---------------------------------
       用emWin啊 现在都到5.18了,功能更加的强劲。移植比较的麻烦,一些ili9xxx的屏比较的好移植,网上有一些例子,
没有移植例子的屏,移植起来能把人郁闷死,基本上市面上常见的驱动芯片,emWin都有一个驱动文件,当然他们驱动差
不多的都对应一个驱动文件。
    以前弄SPFD5420的驱动,移植的时候才发现,它对应的驱动文件里面什么都没有。搞了两天没成功,就放弃了。
作者: hua290565456    时间: 2012-11-6 12:04
LZ  我这几天在战舰上移植UCGUI,LCD驱动是用原子的程序,移植编译都通过之后,我就调用了一个初始化函数(背景色为白色),下载程序进去之后,屏幕白了一下就马上黑屏,这是什么情况?已经困扰我两三天了。。
作者: Eric2013    时间: 2012-11-6 12:46
回复【94楼】hua290565456:
---------------------------------
把你的程序 贴上了 我看看
作者: hooddas    时间: 2012-11-6 13:23
使用STM32+UCOS+UCGUI实现MP3设计,遇到个问题,好久都没有解决,现在开了两个对话框,一个对话框是主界面,一个是MP3显示界面,想实现两个界面的切换,现在两个界面可以切换,但是切换几次画面就会卡死,只能把ucgui 的动态内存分配调大点,但是也是多几次也会画面卡死,不知道该如何解决这个问题
————————————————————————————————————————————————————————————
/*********************************************************************
*
*       显示主界面窗口
*这个是一个界面的主函数
**********************************************************************
*/
void display_menu(void) { 
    GUI_Init();
    WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
}

/*********************************************************************
*
*       显示mp3窗口
*这是第二个界面的主函数
**********************************************************************
*/
void display_mp3(void) { 
        GUI_Init();
    WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
}

/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbCallback(WM_MESSAGE * pMsg) 
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId) 
    {
        case WM_INIT_DIALOG:
            InitDialogMenu(pMsg);
            break;
        case WM_KEY:
            switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) 
            {
                case GUI_KEY_ESCAPE:
                    GUI_EndDialog(hWin, 1);
                    break;
                case GUI_KEY_ENTER:
                    GUI_EndDialog(hWin, 0);
                    break;
            }
            break;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc); 
            NCode = pMsg->Data.v;        
            switch(NCode) 
            {
                                case WM_NOTIFICATION_RELEASED:
                                        if(Id == GUI_ID_BUTTON0)//系统设置        
                                        {
                                                  
                                        }
                                        else if(Id == GUI_ID_BUTTON1)//录音菜单        
                                        {        
        
                                        }
                                        else if(Id == GUI_ID_BUTTON2)//USB菜单        
                                        {

                                        }
                                        else if(Id == GUI_ID_BUTTON3)//MP3菜单        
                                        {
                                                display_mp3();//这里切换到另一个界面                                        }                                                                                        
                                        break;
                                default: 
                                  break;
            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}
另一个函数和上面的相同,也是一个按钮切换到另一个界面
        else if(Id == GUI_ID_BUTTON6)//返回         
                                        {
                                                display_menu();                                        }

只能切换几次,就会卡死界面
作者: Eric2013    时间: 2012-11-6 20:19
回复【96楼】hooddas:
---------------------------------
问题一:为什么这三个函数重复的初始化,没必要的。
           GUI_Init();
           WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
           WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
问题二:两个任务的阻塞对话框里面调用的怎么都一样
           GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
作者: Eric2013    时间: 2012-11-10 13:24
这个东西字前段时间搞过,由于驱动有所改动,还是花了三个晚上(10点到凌晨3点),
白天还得搞别的,只能晚上搞了,感觉调试起来还是有一些大大小小的问题,暂时先
放一放,熬夜有点累,后面再弄,有点忙不过来了。

硬件:STM32F103VET6核心板
           CPU : STM32F103VET6/ LQFP100     (可以换 STM32F407VGT6)
           RS232串口1个
           8MB 串行SPI1个
           4.3寸和7寸屏接口
           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


调试中存在的BUG(有时间了修正一下,暂时还没解决):
1. SD卡U盘,读取数据没问题,写入数据容易存在错误。
2. UCGUI的底层画线函数,用硬件2D绘制,有时存在错误,矩形填充不存在问题,可以使用。
3. 现在FatFS的读取不能超过512字节,不知道哪里出问题,这个程序在armfly的V2,V3开发板上
    运行是没问题,区别就是RA8875的驱动不是用的我用的那个,FATFS的写数据存在问题,所以
    截图功能就不能用了,后面首先把这个问题解决一下。
4. 这个问题也不算是BUG,触摸和TFT屏都是使用fsmc,所以要解决资源共享的问题,我这里没有采用
    信号量的方法(推荐这种,简单有效),armfly例程里面是采用的在每个底层函数里面设置一个变量,
    也起到一个互斥信号量的作用,为了不更改驱动函数,我也采用这种方法,实测也可以的。
   
    这些 BUG已经修正
  
(, 下载次数: 22)

(, 下载次数: 11)

(, 下载次数: 7)

(, 下载次数: 5)

(, 下载次数: 1)

(, 下载次数: 1)

(, 下载次数: 1)

(, 下载次数: 2)

(, 下载次数: 1)

(, 下载次数: 1)

(, 下载次数: 1)

(, 下载次数: 1)









作者: 无名氏    时间: 2012-11-23 13:43
帮顶。。。。呵呵呵。
作者: 刘槟辉    时间: 2012-11-23 14:06
楼主强大。
作者: ofourme    时间: 2012-11-23 17:42
楼主厉害!!!!

但是,没有硬件资源情况介绍么?。。。。
作者: 冰是睡着的水    时间: 2012-11-23 18:09
NB..
作者: wanglituan    时间: 2012-11-24 00:42
太牛了。
作者: Eric2013    时间: 2012-11-24 13:23
回复【101楼】ofourme:
---------------------------------
armfly的V3开发板,屏是RA8875的7寸屏
作者: Eric2013    时间: 2012-11-24 13:24
最近一直没有时间搞自己的东西了,等现在的任务完成了,过年把剩下的功能完善下

作者: Julius007    时间: 2012-12-7 10:12
我擦,楼主太牛了
作者: baiyawei0518    时间: 2012-12-9 14:10
都是大神来的,stm32被玩成这样,很狠!顶一个!




欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/) Powered by Discuz! X3.4