发新帖本帖赏金 10.00元(功能说明)我要提问
12345下一页
返回列表
[USB芯片]

【原创】基于CH579M的MINI版数码相框

[复制链接]
4713|82
手机看帖
扫描二维码
随时随地手机跟帖
jinglixixi|  楼主 | 2020-10-20 15:58 | 显示全部楼层 |阅读模式
#申请原创# #申请开发板# 本帖最后由 jinglixixi 于 2020-10-22 16:35 编辑

从最初得到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.jpg
图1 创建新文件

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

2.jpg
图2 显示读取内容

3)添加OLED屏显示程序,通过语句OLED_ShowString(0,0,mCmdParam.ByteRead.mByteBuffer,16);
来显示读取的内容,见图3所示。这样,我们打开了U盘读取应用的大门。
3.jpg
图3  OLED屏显示

2. 读取U盘软字库来显示汉字
有了前面的字符读取基础,我们可以把它改造为读取字节数据,从而以U盘来构建软字库,并通过OLED屏与显示函数的配合来实现汉子的显示。
1)以“海内存知己天涯若比邻”10个汉字为例,先用字模提取软件提取其字模,见图4所示。
4.jpg
图4 提取字模

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

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

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

5)配置相应的汉字显示函数,实现字模的读写和汉字再现,见图8所示。
当然这是利用小字库来进行显示,若改为大字库进行显示,则需要构建一个索引表,来使汉字的内码与字模的存储位置建立对应关系以便定位读取。
8.png
图8 软字库再现汉字

3. 读取U盘中BMP来显示图片
对于汉字我们可以把它看成是一幅黑白两色的图片,有了汉字显示的基础,就可以尝试用彩色OLED屏来显示图片了。
由于OLED屏的尺寸限制,所以在完成显示任务前,需多加一道工序,那就是制备可供OLED屏显示的图片。
1) 以工具软件来制备供OLED屏显示的图片文件,该图片的长宽值为160*80像素,其内容见图9所示。
9.png
图9图片处理

2) 修改图片显示函数,将其拆散来融入数据读取过程中,则运行后的效果如图10所示。
这里我们之所以来讲图片显示函数打散,也是出于MCU内存小的考虑,是将一副图片的数据拆分成若干块来分批读取,自然显示函数也不宜在整体工作,而是服务于分批分块逐次进行显示。
10.png
图10 图片显示

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

12.png
图12 风景图片

13.jpg
图13 显示细节

建立在CH579M- R1开发板上,最终以读取U盘的形式,实现了数码相框的功能。CH579M是个功能很强的芯片,真心希望有一块CH579EVT开发板以对SD卡的读写功能作进一步的探索,以发挥其更大的潜能。

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2020-10-21
理由:恭喜通过优秀原创文章审核!奖励10元!

rh10000| | 2020-10-21 09:04 | 显示全部楼层
谁都不服就服你

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-21 09:15 | 显示全部楼层

谁都不爱就爱你

使用特权

评论回复
WCHTech2| | 2020-10-21 09:37 | 显示全部楼层
您好,非常感谢您的分享,目前的CH579评估板没有配备SD卡的读写卡槽,我们最新的CH32V103和CH32F103的评估板都配备SD卡槽,基于SPI的方式读写,方便的话私信我您的地址,我们邮寄给您测试。

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-21 10:12 | 显示全部楼层
本帖最后由 jinglixixi 于 2020-10-21 10:29 编辑
WCHTech2 发表于 2020-10-21 09:37
您好,非常感谢您的分享,目前的CH579评估板没有配备SD卡的读写卡槽,我们最新的CH32V103和CH32F103的评估 ...

太好了,先谢过了!马上私信。

使用特权

评论回复
rh10000| | 2020-10-27 08:40 | 显示全部楼层
WCHTech2 发表于 2020-10-21 09:37
您好,非常感谢您的分享,目前的CH579评估板没有配备SD卡的读写卡槽,我们最新的CH32V103和CH32F103的评估 ...

大哥,我的CH32V103的评估板怎么是阉割的,除了LED灯外,EEPROM   FLASH    SD都没有了,我怎么试用?自己再做外围?
这也太那个啥了吧

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-27 16:03 | 显示全部楼层
rh10000 发表于 2020-10-27 08:40
大哥,我的CH32V103的评估板怎么是阉割的,除了LED灯外,EEPROM   FLASH    SD都没有了,我怎么试用?自 ...

如果不是必须用CH32V103,还是选CH579EVT开发板比较好,我也心怡很久没得到,看看图就知道它的外设要丰富些。 a.jpg


使用特权

评论回复
caigang13| | 2020-10-28 21:16 | 显示全部楼层
赞一个

使用特权

评论回复
weifeng90| | 2020-10-28 21:17 | 显示全部楼层
屏幕大点就巴士勒

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-29 00:14 | 显示全部楼层

感谢支持!!!

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-29 00:15 | 显示全部楼层
本帖最后由 jinglixixi 于 2020-10-29 11:10 编辑
weifeng90 发表于 2020-10-28 21:17
屏幕大点就巴士勒

有时间换个大的试试

使用特权

评论回复
rh10000| | 2020-10-29 08:47 | 显示全部楼层
jinglixixi 发表于 2020-10-27 16:03
如果不是必须用CH32V103,还是选CH579EVT开发板比较好,我也心怡很久没得到,看看图就知道它的外设要丰富 ...

我是为了RISC-V,才来测试的,那能又回去呢

使用特权

评论回复
jinglixixi|  楼主 | 2020-10-29 11:09 | 显示全部楼层
rh10000 发表于 2020-10-29 08:47
我是为了RISC-V,才来测试的,那能又回去呢

那就无语了!!!

使用特权

评论回复
caigang13| | 2021-1-6 07:39 | 显示全部楼层
不错,赞一个。

使用特权

评论回复
jinglixixi|  楼主 | 2021-1-6 09:47 | 显示全部楼层

使用特权

评论回复
呐咯密密| | 2021-1-12 15:51 | 显示全部楼层
硬核,满满的干货,能贴一下代码就好了

使用特权

评论回复
chenjun89| | 2021-1-14 08:09 | 显示全部楼层
搞个7寸屏幕吧

使用特权

评论回复
jcky001| | 2021-1-14 09:06 | 显示全部楼层
不错,赞一个。

使用特权

评论回复
jinglixixi|  楼主 | 2021-1-14 09:41 | 显示全部楼层

好的,先去攒些银子,刚买的2.8寸触摸屏,7寸还要攒些时间。

使用特权

评论回复
jinglixixi|  楼主 | 2021-1-14 09:41 | 显示全部楼层
jcky001 发表于 2021-1-14 09:06
不错,赞一个。

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2675

帖子

36

粉丝