eric2013 发表于 2016-2-2 13:48:20

【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)

程序下载在说明下面呢,浏览器下拉几下就看到了。
说明(RL-RTX实时操作系统及其所有中间件版本):
1.制作这个综合Demo的意义在哪里(重要,必读):
我们之前做的几百个例子中很少有突出娱乐性的,这次来一发,突出娱乐性,实战性为辅,什么视频播放器,音频播放器,收音机,
录音机,文本阅读等,全部整上,增加板子的可玩性。虽然是娱乐性项目,但是很多地方极具参考价值,希望能够在实际项目中帮
到大家(后面新版数字信号处理教程,还会发布一个以数字信号处理和示波器为框架的实战性工程)。
(1) 本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件命名,程序框架,注释等都比较规范,大家
阅读或者移植都会比较方便。另外,阅读代码时,务必将编辑器的缩进参数和TAB设置为4来阅读本文件,否则显示不整齐。
(2). 总共创建了15个任务,这15个任务的框架设计是整个项目最重要的,因为你的框架设计直接决定了你的工程稳定性。这次在
RTOS的多任务架构设计上花了很多的心思,我们要充分发挥多任务的特性和实时性,并不是加上了OS,设计的代码还跟裸机一样,
程序中N多标志变量,N多等待标志完成,N多全局变量。这次的综合Demo在这方面还是极具参考价值的,当前这个框架已经测试
相对比较稳定。
(3). GUI的框架设计也比较清晰,GUI任务的大循环while里面仅有一个GUI_Delay函数,所有的应用都是基于对话框或者窗口实现,
无论是工程以后的升级维护,错误排查还是实现复杂的GUI综合,这种方式都极其方便管理,实际项目中强烈推荐这种方式。
(4). TCPnet网络协议栈,采用的事件触发方式,有效降低CPU利用率,实际项目中推荐这种方式。基于这种框架做的网络综合测试,
已经连续稳定运行快6个月。另外,底层已经做了专门处理,网线可以随意插拔,都可以正确获取新的IP地址。
(5). 这次Web网页提供的功能还是极具项目实用价值的,提供了文件的远程下载和上传功能,实际项目远程代码升级,数据采集
文件的上传全靠他了。远程的设备控制,设备数据的显示更新,都做了支持,而且是通过Ajax实现网页的局部刷新,保证页面刷新的
流畅,都是极具参考价值的。如果你有固定IP或者使用花生壳之类的DDNS,还可以实现外网的访问控制。总的来讲,对于我们嵌入
式应用,能上传和下载文件,能够上传数据并实时更新,且可以实现远程控制就足够了。
(6). 文件系统RL-FlashFS在多任务性能的表现极佳,详情看Web部分视频演示和视频播放器,都是RL-FlashFS的多任务实时操作。
(7). 为SD卡插拔和网线插拔的底层增加中断检测方式,效率更高。
(8). Modbus是采用我们自己制作的主站和从站,这次是为其增加了OS的支持。
(9). 如何通过GUI做控制类界面,有时候为了图省事,我们直接把外设功能的实现丢在emWin的回调消息里面,这样设计是极其
不合理的,非常影响重要功能的实时性,比如这次的播放器设计就改变了这种方式,为音乐播放开启一个高优先级任务,DMA中断
给这个任务发消息,emWin任务也给这个任务发消息来实现音乐播放控制。
(10). GUI界面的快速刷新和切换方法。
(11). Modbus或者CAN的总线采集到数据后,GUI界面实时更新数据的方式。
(12). 当前这个综合Demo的框架已经测试的相对比较稳定,如果大家要在这个框架上面制作其它功能,仅需把我们实现的APP替换
掉即可,框架还可以继续使用。即使切换到uCOS-III,FreeRTOS或者其它RTOS上面,框架还是这个框架,框架这个东西是通用的。


总之,还是那句话,我们要充分发挥RTOS的多任务特性和实时性,并特别注重框架设计。
2.注意事项(重要,必读):
(1). 综合demo的RTX源码以及所有中间都是来自MDK4.74,所以这个综合程序推荐用MDK4.74,但使用MDK5也没有问题,解决办法看此贴:链接。
(2). 测试此例子前,务必将我们提供的文件夹“SD卡根目录存放的四个测试文件夹”里面的四个文件夹复制粘贴到SD卡根目录下。
         另外,使用的文件系统RL-FlashFS仅支持ASCII文件名,切不要使用中文。
(3). 首次将程序下载到板子上,将板子断电10秒以上,然后重新上电使用,防止立即下载进去就运行的时候RTC时钟不走和屏幕
         闪烁两个问题,以后使用没有此限制,可以随意开关电源。
(4). 板子左下角J12和J13的跳线帽设置,切不可将PA11和PA12导通,否则USB通信不正常,直接拔掉跳线帽即可,或者短接到
         另外两个引脚都是可以的。
(5). 如果测试网络的话,务必将网线插到能够联网的路由器或者交换机上,否则好些功能无法展示。
(6). 网口用的是DM9161,不是DM9000,USB口用的是MicroUSB接口,即小口。
(7). CAN总线是用的CAN2,由于CAN2的一个引脚跟网络PHY芯片的一个引脚有复用,所有不做CAN2的功能展示了,但是功能
         还在。如果大家要测试的话,将源代码里面网络任务AppTaskTCPTimer的创建注释掉即可。
(8). 由于PHY芯片要初始化一段时间,为了防止其占用时间过长,上电后网络任务的优先级仅比统计任务高,所以上电后,有一段
         时间内的CPU利用率是0.0%,PHY初始化完成后就正常了。另外,上电前未插入网线的话,这个时间比较插入网线的时间稍长。
(9). 此综合Demo仅支持800*480分辨率,其余分辨率的显示屏不再制作了。
(10). 电容屏无需校准,电阻屏的校准看新版emWin教程的第66章说明。
(11). 主界面滑动操作的时候,最好滑动图标以外的区域,图标的区域也可以滑动,但是效果不够完美。
(12). 当前仅做了RTX操作系统版本,后续如果有精力的话,会推出uCOS-III和FreeRTOS版本。
3.版本信息:
RTOS:         RL-RTX      V4.74
File System:RL-FlashFSV4.74
TCP/IP:         RL-TCPnet   V4.74
USB:             RL-USB      V4.74
CAN:            RL-CAN       V4.74
GUI:             emWin         V5.36
Modbus:   Designed by armfly
4.15个任务优先级配置
(1). os_idle_demon,      优先级0:系统空闲任务。
(2). AppTaskStatistic       优先级1:CPU利用率检测。
(3). AppTaskGUI,          优先级3:GUI主任务。
(4). AppTaskTCPMain,优先级4:TCPnet网络任务。
(5). AppTaskUserIF,      优先级5:按键消息处理任务。
(6). AppTaskMsgPro,   优先级6:主要用于截图任务。
(7). AppTaskStart,      优先级7:启动任务。
(8). AppTaskCAN,      优先级8:CAN总线任务。
(9). AppTaskModbus,优先级9:Modbus任务。
(10). AppTaskUSB,          优先级10:USB任务,
(11). AppTaskMusic,       优先级11:音乐任务,用于音乐播放器,视频播放器,录音机和收音机处理。
(12). AppTaskPinDetect, 优先级12:SD卡插拔检测任务。
(13). AppTaskTCPTimer, 优先级13:TCPnet网络定时更新任务。
USB在运行的过程中会创建2两个任务
(14). USBD_RTX_EndPoint0                   优先级2:USB设备端点0任务。
(15). USBD_RTX_MSC_EP_BULK_Event优先级2:USB BULK数据传输任务。
5.15个中断安排
NVIC优先级分组采用4,仅抢占优先级,范围0-15。
LTDC中断,                抢占优先级 0
ETH以太网中断,      抢占优先级 0
USB FS中断,             抢占优先级 0
CAN2 TX中断,          抢占优先级 1
CAN2 RX0中断,      抢占优先级 1
DMA2_Steam5中断,抢占优先级 1
DMA2_Steam1中断,抢占优先级 1
EXTI6中断,               抢占优先级 1
USART3中断,         抢占优先级 2
EXTI2中断,               抢占优先级 2
TIM2中断,                抢占优先级 4
USART1中断,         抢占优先级 13
RTC Alarm中断,       抢占优先级 13
SVC中断,                  抢占优先级 14
Systick中断,             抢占优先级 15
PendSV中断,            抢占优先级 15
6.内存安排
内部SRAM , CCM SRAM和SDRAM安排。
内部192KB SRAM       :80KB用于动态内存分配,其余用于任务堆栈,系统堆栈,文件系统,网络协议栈等。
内部64KB CCM SRAM:用于视频播放器时,JPEG解码。
外部16MB SDRAM   :前4MB用于TFT显存。
外部16MB SDRAM   :后12MB用于emWin动态内存。
7. RTX调试组件效果展示

8.开启MDK4.74最高的3级优化,同时开启相当给力的时间优化


================================================================

下载不正常的话,请鼠标右击附件“复制链接地址”,然后粘贴到迅雷等下载器来下载。

程序下载:
SD卡根目录存放文件下载: http://www.armbbs.cn/static/image/filetype/zip.gifSD卡根目录存放的四个测试文件夹.7z (669.59MB)
程序下载:http://www.armbbs.cn/static/image/filetype/zip.gif基于RTX+emWin+FlashFS+USB+TCPnet+CAN+Modbus的综合Demo.rar (13.91MB)

================================================================
视频展示:
板子的拍摄和电脑端嵌入式Web页面是分别录制的。手机拍摄的,效果不够艳丽,不过不影响性能展示。
板子视频效果展示:

https://www.bilibili.com/video/BV1Hi4y1K7yh?spm_id_from=333.999.0.0

嵌入式Web服务器效果展示:

https://v.youku.com/v_show/id_XMjY0NzIwNTY4OA==.html?spm=a2hzp.8244740.0.0

================================================================
13个已经实现APP的功能说明
1.主界面说明
桌面窗口上面建立JPG背景图片,创建一个支持三个屏大小的motion窗口,用于实现三个屏界面的切换,每个屏
大小的位置创建一个ICONVIEW控件,创建了三个。
(1). 共创建了21个应用图标,实际做了13个,其余7个暂时未做,第三屏上面的7个图标与第一屏的前7个图标是
          一样的,仅用于测试目的。
(2). 滑动的时候最好在图标以外的区域滑动,虽然可以点击图标的区域进行滑动,但是做的还不够好。
(3). 状态栏看文件App_StatusDlg.c开头的说明,系统信息栏看文件App_SysInfoDlg.c开头的说明。
(4). 未制作的功能的图标显示emWin支持的二维码。
显示效果:
第一个界面

第二个界面

第三个界面,仅用于三个界面滑动演示效果,跟第一个界面的前7个图标一样

2.主界面系统信息说明
(1).显示当前IP地址,未插入网线时显示192.168.X.X
(2).显示emWin动态内存的剩余,总共是分配了12MB。
(3).显示CPU利用率,上电后有段时间是显示的0.0%,因为网络初始化占用了一段时间CPU,不插网线的话时间稍长,过会就正常了。
(4).电压和电流的测试功能未加上。
3.主界面状态栏说明
(1).日期和时间的更新。
(2).网线插拔标志显示。
(3).SD卡插拔标志显示。
(4).闹钟是默认支持的,所以一直显示闹钟标志。
(5).用于模拟U盘功能的存储设备不需要更新图标,因为已经设置仅在USB界面里面才可以设置。
(6).其余的暂不使用。
4.我的电脑APP说明
(1). 当前仅作了SD卡的支持。
(2). 文件浏览是用的CHOOSEFILE对话框,此控件点开后会有一个网格调整的过程,这个属正常现象,此控件就是这样的。



5.系统信息APP说明
(1).仅显示下系统配置

6. 音乐播放器APP说明
重要提示
(1)首次使用先点击歌曲列表,歌曲名会被记录到listview控件里面,然后就可以任意操作了。如果文件夹中歌曲较多,首次打
         开会稍慢些,主要是因为要获取每首歌曲的播放时间。以后打开就比较快了,主要是对歌曲列表对话框做了隐藏和显示处理,
      而不是重复的创建和删除。
功能说明
(1)支持上一曲,下一曲,快进和快退,常用的采样率和码率都支持,单声道和立体声也都支持。
(2)音频频谱方面,支持幅值谱和对数谱切换。
(3)emWin任务是低优先级任务,音乐解码任务是高优先级任务,两个任务之间通过任务消息队列和事件标志进行通信。
(4)歌曲列表对话框做了模态处理,这样用户打开此对话框后只能操作这个对话框,而不能操作主界面。














7. 视频播放器APP说明
重要提示:
(1)由于使用的文件系统RL-FlashFS的限制,文件名仅支持ascii字符。
(2)首次使用先点击视频列表,视频名会被记录到listview控件里面,然后就可以任意操作了。如果文件夹中视频较多,首次打
         开会稍慢些,主要是因为要获取每个视频的播放时间。以后打开就比较快了,主要是对视频列表对话框做了隐藏和显示处理,
         而不是重复的创建和删除。
(3)创建两个任务,一个GUI任务,用来刷emWin本身支持的emf格式视频,另一个是音频播放任务,用来播放视频中的声音,
         音频文件是从原始视频中提取出来的,使用MP3格式。由于两个任务都要操作文件系统,分别读取emf视频文件和MP3格
         式的音频文件,所以文件系统就需要互斥访问,也就是得支持重入。
(4)优化:重新添加uCGUI3.98里面的JPEG解码文件,覆盖emWin原有的解码,并做DMA2D优化,emWin自带的卡死,基本300ms
         左右一帧480*272图片,而优化后,差不多80ms左右就一帧。缺点就是跟emWin原有的机制兼容有些问题,不过程序设计中已经
         将其避免。emWin支持的三缓冲可以继续使用。
功能说明:
(1) 支持上一个,下一个,快进和快退。
(2)emWin任务是低优先级任务,音频解码任务是高优先级任务,两个任务之间通过消息邮箱和事件标志进行通信。
(3)视频列表对话框做了模态处理,这样用户打开此对话框后只能操作这个对话框,而不能操作主界面。
显示效果:







8. 录音机APP说明
(1). 录音机的功能做的比较简单,左上角和右上角的两个按钮未用到。
(2). 采样率固定为32KHz,16bit,单通道。
(3). 点击开始按钮,开始录音,录音30秒,务必保证录音结束后才可以播放。
(4). 显示的频谱是对数谱,即对FFT变化后幅值取对数。









9. 收音机APP说明
(1). 为了更好搜索电台,务必给耳机接口插上耳机当做收音机天线用。
(2). 开机上电后,要先点击界面上的开启键,默认是自动搜索模式。开启后点击左下角的搜索键,可以自动搜索电台。
         通过左键和右键实现搜到的电台切换。界面上面的6个颜色块是搜索到电台显示,也可以点击切换。
(3). 界面左上角的按钮是切换到手动搜索,然后通过左键和右键分别实现每次递减0.1MHz和递增0.1MHz。要切换回自
         动搜索,点击左下角按钮即可。作为两种模式的区分,手动搜索模式下,滚动条上面的文本会显示Manual;自动搜
         索模式下,滚动条上面的文本会显示Auto。
(4). 调整滚动条也可以选择电台,范围87.5MHz到108.0MHz。




10. 文本阅读APP说明
(1). 支持浏览的最大文本数是50个, 通过宏定义TextMaxNum进行设置。








11. 图片浏览APP说明
(1). 默认已经限制可显示的JPEG,GIF图片都是10张。
(2). 图片的显示区默认显示为480*320,GIF图片不受限制,但不要太大,因为未做处理。
(3). 删除了JPEG图片的显示,因为视频播放要做优化,优化后不支持函数GUI_JPEG_DrawScaled。






12. 万年历APP说明
(1). GUI主界面左上角的按钮用于弹出时间,日期和闹钟设置界面,右上角的按钮未用到。用户移植这个例子的话,
          此按钮用于返回系统主界面。此万年历例子都是在对话框上面实现的,移植很方便。
(2). 闹钟时间到后,蜂鸣器鸣叫5声。




13. USB APP说明
(1). 移植了RL-USB,板子使用的MicroUSB接口,即小口,实现SD卡模拟U盘,所以SD卡务必插上。
(2). 设置了240s的时间进行连接,如果240s内无法连接上,自动退出连接,一般情况下,500ms左右就连接上了。
(3). 拔掉USB线前,务必点击断开连接按钮。
(4). 为了防止点击了连接USB按钮后用户重复点击,此按钮被设置了禁能,点击断开USB按钮可恢复。
(5). 操作不可太快,要不反应不过来。
(6). 首次在新的电脑上面连接时,电脑端会有一个自动安装驱动的过程,这个时间稍长。所以将连接时间设置为120秒。
(7). 板子左下角J12和J13的跳线帽设置,切不可将PA11和PA12导通,否则USB通信不正常,直接拔掉跳线帽即可。





14. CAN总线 APP说明
(1). 移植了RL-CAN,板子使用的CAN2,速度500Kbps,标准ID
(2). 测试时至少要使用两块板子,手拉手式连接
(3). CAN的标识符过滤器采用标识符列表模式,配置每个板子仅接收标准ID为33的数据帧或者遥控帧
(4). 周期发送的默认时间是500ms。





15. RS485 Modbus APP说明
(1). 移植了Modbus RTU主站,测试时需要连接预装了从站程序的板子,从站地址为0x01
(2). ListView控件上的命令是供用户选择的,选择后点击发送命令按键即可,系统上电后默认选择命令二





16. 所有未制作APP显示界面
(1). 所有未制作APP显示如下界面


17. TCPnet网络协议栈 APP说明
(1). 移植了RL-TCPnet网络协议栈,网口对应DM9161,务必将其连接到能联网的路由或交换机上,否则很
         多功能无法正常运行,网线可以随意插拔,支持自动重连。网络信息和SNTP客户端都是每秒更新一次。
(2). DHCP已经使能,如果插上网线8秒内无法从路由器/交换机获得IP地址,将使用固定IP:192.168.1.200。
(3). 国内免费稳定的SNTP服务器很少了,当前使用的这个时好时坏,如果大家测试不成功的话也是正常的。


18. 嵌入式Web界面效果
对于我们嵌入式应用来说,能上传和下载文件,能够上传数据并实时更新,且可以实现远程控制就足够了




















eric2013 发表于 2016-2-3 01:28:26

2016-02-03
主界面效果,支持滑动操作,类似手机,比较流畅,背景是JPG图片写到内部SDRAM进行刷

byccc 发表于 2016-2-3 01:33:54

顶一下

sss3s 发表于 2016-2-3 10:04:48

背景JPG图片是象V5版开窗显示,还是直接调用EMWIN函数?

eric2013 发表于 2016-2-3 10:32:39

回 sss3s 的帖子

sss3s:背景JPG图片是象V5版开窗显示,还是直接调用EMWIN函数?
 (2016-02-03 10:04) images/back.gif

JPG图片解码后写到SDRAM里面,然后用SDRAM刷就行,F429没有开窗这种功能了。都是操作的裸屏。

star_66666 发表于 2016-2-3 23:23:32

eric2013 发表于 2016-2-5 10:13:47

2016-02-05
基于SAI音频接口的WAV,MP3解码已经实现,开始研究下FLAC和APE。

star_66666 发表于 2016-2-5 11:07:30

eric2013 发表于 2016-2-7 10:54:51

2016-02-07
开始制作音乐播放器的界面。软件WAV和MP3,支持频谱显示,FLAC和APE暂时不搞了,
初次搞比较耗时间。

hszhouw 发表于 2016-2-7 14:50:00

过年楼主还在搞,辛苦、辛苦。

eric2013 发表于 2016-2-14 11:02:50

2016-02-14
好久没有搞娱乐性功能,这次打算把音乐播放,视频播放和收音机等等搞全了。下面是7天的
假期开发出来的软解MP3和WAV的界面。
1.这次在RTOS的多任务架构设计上花了很多的心思,我们要充分发挥多任务的特性和实时性,
   并不是加上了OS,设计的代码还跟裸机一样,程序中N多标志变量,N多等待标志完成。
   N多全局变量,全局变量是多线程安全最大的毒瘤。
2.现在设计的RTOS代码,除了空闲任务,emWin任务就是最低优先级的,为了图省事,很多时候
   就把外设功能的实现直接丢在emWin的回调消息里面去实现,这样设计是极其不合理的,非常影响
   重要功能的实时性,这次的播放器设计改变了这种状态,是把音乐播放专门设计了一个高优先级任务,DMA中断
   给这个任务发消息,emWin任务也给这个音乐任务发消息。
   其实WAV和MP3软解的程序结构基本是一样的,全部是通过DMA双缓冲实现,这样也给音乐任务的实现带来了极大的方便。

byccc 发表于 2016-2-14 13:41:09

eric2013 发表于 2016-2-16 00:28:42

2016-02-16
加入音乐播放器的快进和快退功能,今天进行音乐播放器的收尾工作,以后综合Demo的设计放在晚上搞。
下一步是视屏播放,视频格式采用emWin本身支持的emf格式,其实就是JPEG图片的合集。

myxiaonia 发表于 2016-2-17 10:57:35

牛 支持我的f7-disco买回来还吃灰呢到时候移植硬汉的音乐播放器看看

eric2013 发表于 2016-2-20 10:39:21

2016-02-20
视频播放的基本功能已经实现,视频个使用emWin的emf,音频采用MP3格式,两个任务同时运行。
待进一步完善。

第九度 发表于 2016-2-20 18:29:22

越来越绚丽了

byccc 发表于 2016-2-21 11:27:26

eric2013 发表于 2016-2-23 13:48:04

2016-02-23
由于是采用的emWin本身支持的视频播放功能,只能音频和视频分开到两个任务进行,分开进行的
缺点就来了,文件系统此时是多线程调用,那么就存在互斥问题,所以播放的时候得做同步,同步
问题最让人头痛,做不好的现象就是声音和画面不同步,当前是牺牲声音。保证画面。
============================================================
视频采用:emWin支持的emf格式。
音频采用:MP3格式,打算采用WAV,发现提取出来的音频文件太大。
优化:重新添加UCGUI3.98里面的JPEG解码文件,覆盖emWin原有的解码,emWin自带的卡死,基本
          300ms左右一帧480*272图片,而优化后,差不多80ms左右就一帧。缺点就是更emWin原有的机制
          兼容有些问题,不过程序设计中已经将其避免。
===============================
这个纯属娱乐功能,增加板子的可玩性,没有实战意义,实际效果还不错,板子上面自带音腔喇叭。

wzteng 发表于 2016-2-23 21:16:27

牛 支持

eric2013 发表于 2016-3-1 00:12:10

2016-03-01
开始做收音机界面设置,专门调试了下Si4704的自带搜索功能。

yilengnan 发表于 2016-3-2 19:05:43

楼主,这个板子能够支持10.1寸不,不如1280*800

eric2013 发表于 2016-3-2 19:47:58

回 yilengnan 的帖子

yilengnan:楼主,这个板子能够支持10.1寸不,不如1280*800 (2016-03-02 19:05) images/back.gif

最大1024*768分辨率

eric2013 发表于 2016-3-5 00:09:18

2016-03-05
做FreeRTOS教程耽误了不少时间,这两天把收音机功能做好。

eric2013 发表于 2016-3-9 00:08:48

2016-03-09
完成收音机界面设计:

蓝风西门吹雪 发表于 2016-3-9 13:01:30

蓝风西门吹雪 发表于 2016-3-9 13:04:29

我看这些图片也很多很大,这些图片也是开机的时候读到SDRAM中去吗,还是你优化了图片解码的程序?图片的显示速度怎么样?

eric2013 发表于 2016-3-9 13:08:51

回 蓝风西门吹雪 的帖子

蓝风西门吹雪:我看这些图片也很多很大,这些图片也是开机的时候读到SDRAM中去吗,还是你优化了图片解码的程序?图片的显示速度怎么样? (2016-03-09 13:04) images/back.gif

速度很快,F429有2MB的flash,这些小图片随便放,而背景图片是JPEG的,也直接放在工程里面。不过好些也不是图片,是颜色块。

我这么做的目的,防止客户拿到我们的板子,还需要将图片放到外部存储器,比如SD卡,如果他用的SD卡无法正常识别,售后问题太麻烦,减轻我们的售后压力。

蓝风西门吹雪 发表于 2016-3-9 13:27:41

那用的这些图片转换成c文件是888的还是565的,还是根据具体的图片再确定转换类型?

蓝风西门吹雪 发表于 2016-3-9 13:29:30

比如我的图片转换成这样:
GUI_CONST_STORAGE GUI_BITMAP bmassis_res = {
75, // xSize
60, // ySize
150, // BytesPerLine
16, // BitsPerPixel
(unsigned char *)_acassis_res,// Pointer to picture data
NULL,// Pointer to palette
GUI_DRAW_BMP565
};
这样的图片能做到边缘是透明化吗?就像你的主菜单的图标一样

eric2013 发表于 2016-3-9 15:21:26

回 蓝风西门吹雪 的帖子

蓝风西门吹雪:
比如我的图片转换成这样:
GUI_CONST_STORAGE GUI_BITMAP bmassis_res = {
75, // xSize
60, // ySize
150, // BytesPerLine
....... images/back.gif

透明色要用BMP8888,即带alpha通道的:
GUI_CONST_STORAGE GUI_BITMAP bm3D = {
72, // xSize
72, // ySize
288, // BytesPerLine
32, // BitsPerPixel
(unsigned char *)_ac3D,// Pointer to picture data
NULL,// Pointer to palette
GUI_DRAW_BMP8888
};

蓝风西门吹雪 发表于 2016-3-9 17:54:18

按你说的,我把用到的所有图片资源在开机时都读到SDRAM中,运行时需要用的时候直接从SDRAM中取,确实很快,哈哈哈,谢谢了

eric2013 发表于 2016-3-13 01:02:25

2016-03-13
开始录音机APP的设计,打算搞成录制WAV音频文件,将其记录到SD卡里面。

eric2013 发表于 2016-3-23 00:34:12

2016-03-23
这几天售后压力有些大,咨询问题的兄弟比较多,FreeRTOS教程也花了不少时间,得抓紧这
个录音机的设计了,现在已经把基本功能和界面都实现了,暂时先不搞成WAV文件了,音频数
据直接存储到SDRAM里面。后天把设计的界面贴上。

mewan 发表于 2016-3-23 17:09:17

回 eric2013 的帖子

eric2013:2016-02-03
主界面效果,支持滑动操作,类似手机,比较流畅,背景是JPG图片写到内部SDRAM进行刷 (2016-02-03 01:28) images/back.gif

滑动是怎么实现的,做滑动效果需要什么硬件支持么?

eric2013 发表于 2016-3-24 16:18:29

回 mewan 的帖子

mewan:滑动是怎么实现的,做滑动效果需要什么硬件支持么? (2016-03-23 17:09) images/back.gif

引脚不需要,软件上使用emWIn的MOTION控件就可以的。

eric2013 发表于 2016-3-28 00:46:37

2016-03-28
完成录音机:

eric2013 发表于 2016-4-1 16:13:31

2016-04-01
前面的做几个F429应用都是单独的创建个窗口来实现APP功能,这个图片浏览单独创建一个窗口不太方便
BMP和JPG图片还好,而GIF图片就比较的麻烦些,主要是因为GIF需要动态的显示,在窗口的回调函数里面
动态的刷新比较麻烦,不太好实现,所以直接放在桌面窗口绘制。
    图片的显示全部放缩到480*320的范围内显示。

cingcing 发表于 2016-4-2 19:26:57

大力支持eric

eric2013 发表于 2016-4-7 01:41:06

2016-04-07
这几天做FreeRTOS教程和售后,忙的有些乱套了,晚上基本没事做综合Demo,抽个时间
制作下一个APP,即文本阅读。

eric2013 发表于 2016-4-12 21:32:17

这段时间的确是忙的去乱套了,得使劲使劲的挤时间去开发这个综合Demo了。
页: [1] 2 3 4 5 6
查看完整版本: 【安富莱】F429开发板RTOS+emWin+FS+TCP/IP+USB+CAN+Modbus综合Demo已发布(2017-03-21)