ddllxxrr 发表于 2019-12-1 10:54

【RT-Thread软件包应用作品】相册

<p><br />
首先,我对RT-THREAD同正点原子合作的这块板子,给好评,集成了WIFI芯片不说,编程和STM32系列的几乎没有什么差别。</p>

<p>太对我胃口了。这款片子还是SOC芯片。另外集成外设也多。真是学习RT-THREAD必备之良器。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;这个相册,我考虑有一段时间了。我觉得屏我的实力可以搞定。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;它涉及两大方面,一方面从SD卡读文件。另一方面显示。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;而SD卡方面涉及到加文件系统,能否从SD卡顺利读出,读出个什么东东,能否在显示屏上显示。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;虽然很简单但做起来就是不易,唉!没有免费的早餐。</p>

<p>&nbsp;</p>

<p><span style="color:#27ae60;">&nbsp; <em><strong>&nbsp; &nbsp; 一、准备相册图片</strong></em></span></p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 以在是淘宝东积院(东北积木设计院)的照片,我用图画截为240*240的小画:</p>

<p>&nbsp; &nbsp; &nbsp;&nbsp;</p>

<p>&nbsp;</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>&nbsp; &nbsp; &nbsp;一开始我还看不上RT-THRAD的环境。menuconfig介不同LINUX一样了么???想当年我可是花了不少银子</p>

<p>,买了个开发板又买了十几本书攻过LINUX来这,所以我一看到界面有点不太高兴。</p>

<p>&nbsp; &nbsp; &nbsp;但是用一下,觉得不错。我选得是FS那个例程,但是里边没显示,我就把显示加上。</p>

<p>&nbsp; &nbsp; &nbsp;至于ENV的环境,官网上也有这里不多说,在ENV键入menuconfig</p>

<p>&nbsp; &nbsp;&nbsp;以下是FS文件系统,网上有参考说明的,我不想多说<br />
然后保存</p>

<p></p>

<p>在ENV环境中键入</p>

<p>&nbsp;pkgs --update</p>

<p>然后键入</p>

<p>&nbsp;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 &lt;rtthread.h&gt;
#include &lt;dfs_fs.h&gt;
#include &lt;drv_lcd.h&gt;
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include &lt;rtdbg.h&gt;
#include &lt;dfs_posix.h&gt;
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 &gt;=0 )
    {                       
                      size = read(fd,buffer,sizeof(buffer));
                          close(fd);
                          if(size &lt; 0)
                                        return 0;       
                                               
                          
                }       
               
               
          lcd_show_image(0, 0, 240, 239, buffer);       
               
                iii++;
               
                if(iii &gt;= 3)
                iii = 0;       
               
               
}               
    return 0;
}
</code></pre>

<p>&nbsp;</p>

<p><span style="color:#2ecc71;"><em><strong>三,验证</strong></em></span><br />
&nbsp;</p>

<p>这里传个视频,第三幅再转成BIN文件时就提示有非法数据,我觉得是转换软件碰到了不识别的东东。与本个程序无关。</p>

<p>也等有机会改进一下。本人认为我的开发板都在吃灰,而这个小板板居然可以看看我喜欢的图片。平时我得多拿出来看看哈。</p>

<p>&nbsp;</p>

<p>以下是视频链接:</p>

<p>https://v.youku.com/v_show/id_XNDQ1NDI4ODYyMA==.html?spm=a2h3j.8428770.3416059.1</p>

<p>&nbsp;</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 />
&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><b><font color="#5E7384">此内容由EEWORLD论坛网友<font size="3">ddllxxrr</font>原创,如需转载或用于商业用途需征得作者同意并注明出处</font></b></p>
页: [1]
查看完整版本: 【RT-Thread软件包应用作品】相册