【RT-Thread软件包应用作品】相册
<p><br />首先,我对RT-THREAD同正点原子合作的这块板子,给好评,集成了WIFI芯片不说,编程和STM32系列的几乎没有什么差别。</p>
<p>太对我胃口了。这款片子还是SOC芯片。另外集成外设也多。真是学习RT-THREAD必备之良器。</p>
<p> 这个相册,我考虑有一段时间了。我觉得屏我的实力可以搞定。</p>
<p> 它涉及两大方面,一方面从SD卡读文件。另一方面显示。</p>
<p> 而SD卡方面涉及到加文件系统,能否从SD卡顺利读出,读出个什么东东,能否在显示屏上显示。</p>
<p> 虽然很简单但做起来就是不易,唉!没有免费的早餐。</p>
<p> </p>
<p><span style="color:#27ae60;"> <em><strong> 一、准备相册图片</strong></em></span></p>
<p> 以在是淘宝东积院(东北积木设计院)的照片,我用图画截为240*240的小画:</p>
<p> </p>
<p> </p>
<p></p>
<p></p>
<p>然后,再用取模软件取模,取成高位在前,不要文件头的16位真彩色565格式:</p>
<p>这还没完然后用C2B转换助手转为BIN文件,就是把数组转成BIN文件。</p>
<p>还不算完,再准备个SD卡及读卡器,把文件都考到SD卡上。</p>
<p><span style="color:#2ecc71;"><em><strong>二,搭建环境及编程</strong></em></span></p>
<p> 一开始我还看不上RT-THRAD的环境。menuconfig介不同LINUX一样了么???想当年我可是花了不少银子</p>
<p>,买了个开发板又买了十几本书攻过LINUX来这,所以我一看到界面有点不太高兴。</p>
<p> 但是用一下,觉得不错。我选得是FS那个例程,但是里边没显示,我就把显示加上。</p>
<p> 至于ENV的环境,官网上也有这里不多说,在ENV键入menuconfig</p>
<p> 以下是FS文件系统,网上有参考说明的,我不想多说<br />
然后保存</p>
<p></p>
<p>在ENV环境中键入</p>
<p> pkgs --update</p>
<p>然后键入</p>
<p> scons -- mdk5</p>
<p>然后就可以编程了</p>
<p>本人程序如下:(电子相册)</p>
<p>先说下思路,就是利用一个缓存,循环读入BIN文件,然后马上显示。</p>
<pre>
<code>/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-05-16 yangjie first implementation
*/
#include <rtthread.h>
#include <dfs_fs.h>
#include <drv_lcd.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#include <dfs_posix.h>
uint8_t buffer;
int fd,size;
uint8_t iii;
int main(void)
{
rt_device_t sd_device = RT_NULL;
lcd_clear(WHITE);
#ifdef BSP_USING_TF_CARD
/* 挂载 TF 卡中的文件系统,参数 elm 表示挂载的文件系统类型为 elm-fat 文件系统*/
if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
{
LOG_I("Filesystem initialized!");
}
else
{
LOG_E("Failed to initialize filesystem!");
}
#endif /*BSP_USING_TF_CARD*/
while(1)
{
if(iii == 0)
fd = open("/tt1.bin",O_RDONLY);
else if(iii == 1)
fd = open("/tt2.bin",O_RDONLY);
else if(iii == 2)
fd = open("/tt3.bin",O_RDONLY);
else if(iii == 3)
fd = open("/tt4.bin",O_RDONLY);
if(fd >=0 )
{
size = read(fd,buffer,sizeof(buffer));
close(fd);
if(size < 0)
return 0;
}
lcd_show_image(0, 0, 240, 239, buffer);
iii++;
if(iii >= 3)
iii = 0;
}
return 0;
}
</code></pre>
<p> </p>
<p><span style="color:#2ecc71;"><em><strong>三,验证</strong></em></span><br />
</p>
<p>这里传个视频,第三幅再转成BIN文件时就提示有非法数据,我觉得是转换软件碰到了不识别的东东。与本个程序无关。</p>
<p>也等有机会改进一下。本人认为我的开发板都在吃灰,而这个小板板居然可以看看我喜欢的图片。平时我得多拿出来看看哈。</p>
<p> </p>
<p>以下是视频链接:</p>
<p>https://v.youku.com/v_show/id_XNDQ1NDI4ODYyMA==.html?spm=a2h3j.8428770.3416059.1</p>
<p> </p>
<p><iframe allowfullscreen="true" frameborder="0" height="450" src="http://player.youku.com/embed/XNDQ1NDI4ODYyMA" style="background:#eee;margin-bottom:10px;" width="100%"></iframe><br />
</p>
<p> </p>
<p> </p>
<p><b><font color="#5E7384">此内容由EEWORLD论坛网友<font size="3">ddllxxrr</font>原创,如需转载或用于商业用途需征得作者同意并注明出处</font></b></p>
页:
[1]