请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 125930|回复: 228
收起左侧

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

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
发表于 2016-2-2 13:48:20 | 显示全部楼层 |阅读模式
程序下载在说明下面呢,浏览器下拉几下就看到了。
说明(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-FlashFS  V4.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调试组件效果展示
正式.png
8.  开启MDK4.74最高的3级优化,同时开启相当给力的时间优化
55555.png

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

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

程序下载:
SD卡根目录存放文件下载: SD卡根目录存放的四个测试文件夹.7z (669.59MB)
程序下载:基于RTX+emWin+FlashFS+USB+TCPnet+CAN+Modbus的综合Demo.rar (13.91MB)

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



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



================================================================
13个已经实现APP的功能说明
1.  主界面说明
桌面窗口上面建立JPG背景图片,创建一个支持三个屏大小的motion窗口,用于实现三个屏界面的切换,每个屏
大小的位置创建一个ICONVIEW控件,创建了三个。
(1). 共创建了21个应用图标,实际做了13个,其余7个暂时未做,第三屏上面的7个图标与第一屏的前7个图标是
          一样的,仅用于测试目的。
(2). 滑动的时候最好在图标以外的区域滑动,虽然可以点击图标的区域进行滑动,但是做的还不够好。
(3). 状态栏看文件App_StatusDlg.c开头的说明,系统信息栏看文件App_SysInfoDlg.c开头的说明。
(4). 未制作的功能的图标显示emWin支持的二维码。
显示效果:
第一个界面
8.png
第二个界面
9.png
第三个界面,仅用于三个界面滑动演示效果,跟第一个界面的前7个图标一样
10.png
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对话框,此控件点开后会有一个网格调整的过程,这个属正常现象,此控件就是这样的。
0.png
1.png
2.png
5.  系统信息APP说明
(1).  仅显示下系统配置
3.png
6. 音乐播放器APP说明
重要提示
(1)首次使用先点击歌曲列表,歌曲名会被记录到listview控件里面,然后就可以任意操作了。如果文件夹中歌曲较多,首次打
         开会稍慢些,主要是因为要获取每首歌曲的播放时间。以后打开就比较快了,主要是对歌曲列表对话框做了隐藏和显示处理,
        而不是重复的创建和删除。
功能说明
(1)支持上一曲,下一曲,快进和快退,常用的采样率和码率都支持,单声道和立体声也都支持。
(2)音频频谱方面,支持幅值谱和对数谱切换。
(3)emWin任务是低优先级任务,音乐解码任务是高优先级任务,两个任务之间通过任务消息队列和事件标志进行通信。
(4)歌曲列表对话框做了模态处理,这样用户打开此对话框后只能操作这个对话框,而不能操作主界面。
0.png

1.png

2.png

3.png

4.png

5.png



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)视频列表对话框做了模态处理,这样用户打开此对话框后只能操作这个对话框,而不能操作主界面。
显示效果:
1.png

3.png
4.png

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

1.png

3.png

4.png


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

1.png

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

5.png

6.png

7.png

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

12.png

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

2.png

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通信不正常,直接拔掉跳线帽即可。
0.png

22.png

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

1.png

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

1.png


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

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

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

2.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

评分

参与人数 1金币 +10 收起 理由
dragonfang + 10 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-3 01:28:26 | 显示全部楼层
2016-02-03
主界面效果,支持滑动操作,类似手机,比较流畅,背景是JPG图片写到内部SDRAM进行刷
回复

使用道具 举报

36

主题

2037

回帖

2145

积分

至尊会员

积分
2145
发表于 2016-2-3 01:33:54 | 显示全部楼层
顶一下[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

27

主题

82

回帖

163

积分

初级会员

积分
163
发表于 2016-2-3 10:04:48 | 显示全部楼层
背景JPG图片是象V5版开窗显示,还是直接调用EMWIN函数?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-3 10:32:39 | 显示全部楼层

回 sss3s 的帖子

sss3s:背景JPG图片是象V5版开窗显示,还是直接调用EMWIN函数?
 (2016-02-03 10:04) 
JPG图片解码后写到SDRAM里面,然后用SDRAM刷就行,F429没有开窗这种功能了。都是操作的裸屏。
回复

使用道具 举报

6

主题

390

回帖

408

积分

高级会员

积分
408
发表于 2016-2-3 23:23:32 | 显示全部楼层
[s:151]  [s:151]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-5 10:13:47 | 显示全部楼层
2016-02-05
基于SAI音频接口的WAV,MP3解码已经实现,开始研究下FLAC和APE。
回复

使用道具 举报

6

主题

390

回帖

408

积分

高级会员

积分
408
发表于 2016-2-5 11:07:30 | 显示全部楼层
[s:141]  [s:141]  [s:141]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-7 10:54:51 | 显示全部楼层
2016-02-07
开始制作音乐播放器的界面。软件WAV和MP3,支持频谱显示,FLAC和APE暂时不搞了,
初次搞比较耗时间。
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2016-2-7 14:50:00 | 显示全部楼层
过年楼主还在搞,辛苦、辛苦。[s:149] [s:149] [s:149]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 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双缓冲实现,这样也给音乐任务的实现带来了极大的方便。
回复

使用道具 举报

36

主题

2037

回帖

2145

积分

至尊会员

积分
2145
发表于 2016-2-14 13:41:09 | 显示全部楼层
[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-16 00:28:42 | 显示全部楼层
2016-02-16
加入音乐播放器的快进和快退功能,今天进行音乐播放器的收尾工作,以后综合Demo的设计放在晚上搞。
下一步是视屏播放,视频格式采用emWin本身支持的emf格式,其实就是JPEG图片的合集。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2016-2-17 10:57:35 | 显示全部楼层
牛 支持  我的f7-disco买回来还吃灰呢  到时候移植硬汉的音乐播放器看看
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-2-20 10:39:21 | 显示全部楼层
2016-02-20
视频播放的基本功能已经实现,视频个使用emWin的emf,音频采用MP3格式,两个任务同时运行。
待进一步完善。
回复

使用道具 举报

6

主题

90

回帖

108

积分

初级会员

积分
108
QQ
发表于 2016-2-20 18:29:22 | 显示全部楼层
越来越绚丽了
回复

使用道具 举报

36

主题

2037

回帖

2145

积分

至尊会员

积分
2145
发表于 2016-2-21 11:27:26 | 显示全部楼层
[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

0

主题

27

回帖

27

积分

新手上路

积分
27
发表于 2016-2-23 21:16:27 | 显示全部楼层
[s:151]  [s:151]  [s:151]  [s:151]  [s:151]  [s:151] 牛 支持
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-1 00:12:10 | 显示全部楼层
2016-03-01
开始做收音机界面设置,专门调试了下Si4704的自带搜索功能。
回复

使用道具 举报

0

主题

22

回帖

22

积分

新手上路

积分
22
发表于 2016-3-2 19:05:43 | 显示全部楼层
楼主,这个板子能够支持10.1寸不,不如1280*800
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-2 19:47:58 | 显示全部楼层

回 yilengnan 的帖子

yilengnan:楼主,这个板子能够支持10.1寸不,不如1280*800 (2016-03-02 19:05) 
最大1024*768分辨率
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-5 00:09:18 | 显示全部楼层
2016-03-05
做FreeRTOS教程耽误了不少时间,这两天把收音机功能做好。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-9 00:08:48 | 显示全部楼层
2016-03-09
完成收音机界面设计:
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2016-3-9 13:01:30 | 显示全部楼层
[s:151]  [s:151]  [s:151]
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2016-3-9 13:04:29 | 显示全部楼层
我看这些图片也很多很大,这些图片也是开机的时候读到SDRAM中去吗,还是你优化了图片解码的程序?图片的显示速度怎么样?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-9 13:08:51 | 显示全部楼层

回 蓝风西门吹雪 的帖子

蓝风西门吹雪:我看这些图片也很多很大,这些图片也是开机的时候读到SDRAM中去吗,还是你优化了图片解码的程序?图片的显示速度怎么样? (2016-03-09 13:04)
速度很快,F429有2MB的flash,这些小图片随便放,而背景图片是JPEG的,也直接放在工程里面。不过好些也不是图片,是颜色块。

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

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2016-3-9 13:27:41 | 显示全部楼层
那用的这些图片转换成c文件是888的还是565的,还是根据具体的图片再确定转换类型?
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 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
};
这样的图片能做到边缘是透明化吗?就像你的主菜单的图标一样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-9 15:21:26 | 显示全部楼层

回 蓝风西门吹雪 的帖子

蓝风西门吹雪:
比如我的图片转换成这样:
GUI_CONST_STORAGE GUI_BITMAP bmassis_res = {
  75, // xSize
  60, // ySize
  150, // BytesPerLine
.......
透明色要用BMP8888,即带alpha通道的:
  1. GUI_CONST_STORAGE GUI_BITMAP bm3D = {
  2.   72, // xSize
  3.   72, // ySize
  4.   288, // BytesPerLine
  5.   32, // BitsPerPixel
  6.   (unsigned char *)_ac3D,  // Pointer to picture data
  7.   NULL,  // Pointer to palette
  8.   GUI_DRAW_BMP8888
  9. };
复制代码
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2016-3-9 17:54:18 | 显示全部楼层
按你说的,我把用到的所有图片资源在开机时都读到SDRAM中,运行时需要用的时候直接从SDRAM中取,确实很快,哈哈哈,谢谢了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-13 01:02:25 | 显示全部楼层
2016-03-13
开始录音机APP的设计,打算搞成录制WAV音频文件,将其记录到SD卡里面。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-23 00:34:12 | 显示全部楼层
2016-03-23
这几天售后压力有些大,咨询问题的兄弟比较多,FreeRTOS教程也花了不少时间,得抓紧这
个录音机的设计了,现在已经把基本功能和界面都实现了,暂时先不搞成WAV文件了,音频数
据直接存储到SDRAM里面。后天把设计的界面贴上。
回复

使用道具 举报

54

主题

145

回帖

307

积分

高级会员

积分
307
发表于 2016-3-23 17:09:17 | 显示全部楼层

回 eric2013 的帖子

eric2013:2016-02-03
主界面效果,支持滑动操作,类似手机,比较流畅,背景是JPG图片写到内部SDRAM进行刷 (2016-02-03 01:28) 
滑动是怎么实现的,做滑动效果需要什么硬件支持么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-24 16:18:29 | 显示全部楼层

回 mewan 的帖子

mewan:滑动是怎么实现的,做滑动效果需要什么硬件支持么? (2016-03-23 17:09) 
引脚不需要,软件上使用emWIn的MOTION控件就可以的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-3-28 00:46:37 | 显示全部楼层
2016-03-28
完成录音机:
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-4-2 19:26:57 | 显示全部楼层
大力支持eric
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-4-7 01:41:06 | 显示全部楼层
2016-04-07
这几天做FreeRTOS教程和售后,忙的有些乱套了,晚上基本没事做综合Demo,抽个时间
制作下一个APP,即文本阅读。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105942
QQ
 楼主| 发表于 2016-4-12 21:32:17 | 显示全部楼层
这段时间的确是忙的去乱套了,得使劲使劲的挤时间去开发这个综合Demo了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 16:27 , Processed in 0.354984 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表