从当初得到第一块CH554开发板起,就期待着有一块能读取U盘的开发板,后来CH579M EVT开发板出来,可惜没能如愿,于是就力量集中在CH579M- R1开发板身上。
尽管CH579M- R1较之CH579M EVT的外设相差很多,当还是能够通过它来实现U盘读写数据的愿望。
由于例程提供的功能不很完整,因此在这方面投入了许多时间和精力,但起色不大,直到近几日才最终完成预期的目标,使彩色OLED屏与U盘读写功能相结合,实现了一个迷你版的数码相框。
在此期间,所经历的历程如下:
1. 读取U盘中的信息并在OLED屏上显示其内容
1)首先创建一个新文件“CH579HFT.TXT”,然后将字符串“CH579M-R1 OK”等信息写入其中见图1所示。
图1 创建新文件
2)通过串行通讯来显示读取的内容,见图2所示。其中,是以语句TotalCount = 12;来限定读取的字节长度。
图2 显示读取内容
3)添加OLED屏显示程序,通过语句OLED_ShowString(0,0,mCmdParam.ByteRead.mByteBuffer,16);
来显示读取的内容,见图3所示。
图3 OLED屏显示
2. 读取U盘中的字模并在OLED屏上显示汉字
在前面字符读写的基础上,我们可以把它改造为读取字节数据,从而以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屏来显示图片了。
图9图片处理
图10 图片显示
4.数码相框功能的实现
有了图片显示功能,我们就可以利用U盘容量大可对大量文件进行管理的特点来实现数码相框的功能,其基本实现是每显示完一幅图片后,经延时再打开另一个图片文件来进行读取和显示,其效果如图11~图13所示。
图11 卡通图片
图12 风景图片
图13 显示细节
在CH579M- R1开发板上读取U盘的目标实现了,且具备了数码相框的功能,CH579M是个功能很强的芯片,真心希望能得到一块CH579M EVT开发板以对SD卡读写功能进行进一步的探索,以发挥其更大的潜能。
本帖最后由 jinglixixi 于 2020-10-19 16:26 编辑引用: hujj 发表于 2020-10-19 16:37 非常不错,屏幕若再大一点就更好了。
回头换2.2’屏看看。
dcexpert 发表于 2020-10-19 16:46 静态效果挺好,不知道动画效果怎样。
上动画,就需要整明白动画的驱动程序了,暂时还实现不了呀!
如果是多画面快速切换效果还是可以的。
本帖最后由 jinglixixi 于 2020-10-19 17:21 编辑哎呀呀,居然没看到,非常抱歉哈,我会好好看这一篇的。