[USB芯片]基于CH579M的MINI版数码相框

news/2024/11/8 12:14:09/

从最初得到CH554开发板起,就期待着有一块能读取U盘的开发板,后来CH579M EVT开发板出来,可惜没能如愿,于是就将力量集中在CH579M- R1开发板身上。

尽管CH579M- R1较之CH579M EVT的外设相差很多,当还是能够通过它来实现U盘读写数据的愿望。

由于该开发板的例程对U盘读写功能展示的不很完整,因此在这方面投入了许多时间和精力,但起色不大。

直到近几日才最终达到了预期的目标,使彩色OLED屏与U盘读写功能相结合,实现了一个迷你版的数码相框。

在此期间,所经历的历程如下:

1. 在OLED屏上显示U盘信息

其实对U盘功能的期许并不在于它的写入能力多强,能记录采集的数据即可,但对它的读取能力就另眼相看了,因为在微处理器这方面,你给它再大的内存也不嫌多,不得以只能寄托于U盘之类的外存。相较于Flash,U盘更便于交换数据和信息。要想实现数码相框功能,首先就要过读取这一关。

1)首先新建一个文件“CH579HFT.TXT”,然后将字符串“CH579M-R1 OK”等信息写入其中见图1所示。   

图1 创建新文件

2)通过串行通讯来显示读取的内容,见图2所示。其中,是以语句TotalCount = 12;来限定读取的字节长度。

由此,可见数据的读取是成功的。

图2 显示读取内容

3)添加OLED屏显示程序,通过语句OLED_ShowString(0,0,mCmdParam.ByteRead.mByteBuffer,16);

来显示读取的内容,见图3所示。这样,我们打开了U盘读取应用的大门。

图3  OLED屏显示

2. 读取U盘软字库来显示汉字

有了前面的字符读取基础,我们可以把它改造为读取字节数据,从而以U盘来构建软字库,并通过OLED屏与显示函数的配合来实现汉子的显示。

1)以“海内存知己天涯若比邻”10个汉字为例,先用字模提取软件提取其字模,见图4所示。

图4 提取字模

2)将字模生成的文件整理成转换软件所要求的格式,然后进行转换即可得到存放字模的二进制文件,见图5所示。

图5 数据格式转换

3)通过工具软件对数据进行审核,见图6所示。经审核两者的内容一致,只是数据类型不再不同。

图6 审核BIN文件

4)通过串行通讯来分批次读取字模,每次32        个字节,其结果如图7所示,经判别读取无误。

图7 读取字模

5)配置相应的汉字显示函数,实现字模的读写和汉字再现,见图8所示。

当然这是利用小字库来进行显示,若改为大字库进行显示,则需要构建一个索引表,来使汉字的内码与字模的存储位置建立对应关系以便定位读取。

图8 软字库再现汉字

3. 读取U盘中BMP来显示图片

对于汉字我们可以把它看成是一幅黑白两色的图片,有了汉字显示的基础,就可以尝试用彩色OLED屏来显示图片了。

由于OLED屏的尺寸限制,所以在完成显示任务前,需多加一道工序,那就是制备可供OLED屏显示的图片。

1) 以工具软件来制备供OLED屏显示的图片文件,该图片的长宽值为160*80像素,其内容见图9所示。

图9图片处理

2) 修改图片显示函数,将其拆散来融入数据读取过程中,则运行后的效果如图10所示。

这里我们之所以来讲图片显示函数打散,也是出于MCU内存小的考虑,是将一副图片的数据拆分成若干块来分批读取,自然显示函数也不宜在整体工作,而是服务于分批分块逐次进行显示。

图10 图片显示

4.数码相框功能的实现

完成了图片的显示功能,我们就可以利用U盘容量大、可对大量文件进行管理的特点来实现数码相框的功能,其基本思路是每显示完一幅图片后,经延时再打开另一个图片文件以进行读取和显示,其效果如图11~图13所示。

图11 卡通图片

图12 风景图片

图13 显示细节

建立在CH579M- R1开发板上,最终以读取U盘的形式,实现了数码相框的功能。CH579M是个功能很强的芯片,真心希望有一块CH579EVT开发板以对SD卡的读写功能作进一步的探索,以发挥其更大的潜能。
---------------------
作者:jinglixixi
链接:https://bbs.21ic.com/icview-3038818-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。


http://www.ppmy.cn/news/588358.html

相关文章

数码相框设计-系统框架与环境

当我们需要设计一款产品时,一般分为四个步骤: abcd弄清需求设计框架编写代码测试产品 框架是整个流程最难也是最重要的部分,在此主要来介绍框架与开发的环境来对数码相框有个大体的认识 一、需求 ① 上电,lcd显示一幅图片。 …

9、数码相框编写程序之框架分析

文章目录 1、框架分析1.1、数码相框的整体框架1.2、页面管理模块框架1.3、抽象出结构体 2、框架编写 上一节:8、数码相框之libjpeg的使用 下一节:10、数码相框编写程序之图标显示 1、框架分析 1.1、数码相框的整体框架 我们最终要实现的功能如上图&am…

linux-数码相框

平台:s3c2440 内核版本:linux-2.6.22.6 源码位置:https://github.com/yogach/digital_photo 描述:本数字相框实现共实现了主页面、文件浏览页面、图片模式浏览页面、图片联播页面、设置页面、联播模式时间间隔设置页面。图片部分…

数码相框(四、使用freetype库实现矢量字体显示)

注:本人已购买韦东山第三期项目视频,内容来源《数码相框项目视频》、数码相框-通过freetype库实现矢量显示,只用于学习记录,如有侵权,请联系删除。 在数码相框(三、LCD显示文字)中使用字体的点阵数据显示文字&#xff…

数码相框(三、LCD显示文字)

注:本人已购买韦东山第三期项目视频,内容来源《数码相框项目视频》,只用于学习记录,如有侵权,请联系删除。 文字在LCD上的显示其实就是LCD上的一些点的显示与不显示,这些显示的点就像我们的笔画一样&#x…

特权的DIY数码相框总结

本文是对DIY数码相框一章的总结,重在对整个数据通路的理解。 具体的需求参见该书的相关章节。整个数据流是: sd卡控制模块,通过spi接口读sd卡中的数据,给wrfifo进行缓存,满了256byte后wrfifo通知sdram读取fifo中的数…

11、数码相框编写程序之MainPage显存管理与页面规划

文章目录 1、显存的分配和获取1.1、构造显存链表的结构体1.2、显存分配函数1、将我们自己分配的显存加入显存链表2、 将LCD 实际设备FB 显存加入链表 1.3、显存获取函数 2、显示页面图标函数框架构思3、编写MainPage页面3.1、获得显存3.2、描画数据1、判断或得到的显存是否已经…

18.数码相框总结

框架 整体框架如上,我对他们的阅读顺序是按照博客发布的顺序来的,感觉还行,读起来不是特别困难 page文件夹下的代码太多,就不一个一个拿出来粘代码了,关于page文件夹的阅读顺序 **page_manager -> main_page ->…