RT-Thread+GD32,打造音乐播放器与NES模拟器

描述

 

方案实现

 

01

UI 显示

音乐播放器UI 使用 LVGL 显示框架,从 SD 卡中加载矢量字体显示。示例中支持了 Tiny TTF 字体引擎和 FreeType,通过 menuconfig 选择即可。首页通过流式布局实现了蜂窝式图标效果。

音乐播放器

 

02

音频播放

音乐播放器基于 RT-Thread Audio 框架,使用 定时器触发 DAC DMA 方式实现底层驱动:

  • 支持 8K、11K、16K、22K、32K、44K、48K 采样率
  • 支持单声道、双声道解析,实际只输出一路
  • 支持 8bit、16bit 采样位数

 

03

NES 模拟器

音乐播放器示例中移植了两个 NES 模拟器,通过 menuconfig 选择即可。

  1. 正点原子nes模拟器
     
  2. C 语言实现的 nes 模拟器:https://github.com/Dozingfiretruck/nes
音乐播放器



 

NES 刷新策略


示例中适配了两种刷新策略:

  1. 使用 LVGL Images 组件,直接绘制到数据区
  2. 独立双缓冲区,绘制期间屏蔽 LVGL 刷新

两种策略分别测试,独立双缓冲区效果最佳。

音乐播放器

音乐播放器

04

输入设备

音乐播放器USB 协议栈使用 CherryUSB,将鼠标对接到 LVGL 的输入设备、键盘对接到 nes 模拟器。

  • CherryUSB :
     

https://github.com/cherry-embedded/CherryUSB


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分