[开发板与模块]

【ESK32-30519 + ESK32-21001测评】+flash存储器读写及图像再现

[复制链接]
490|19
手机看帖
扫描二维码
随时随地手机跟帖
jinglixixi|  楼主 | 2022-10-8 15:50 | 显示全部楼层 |阅读模式
本帖最后由 eltonchang2001 于 2022-11-9 11:53 编辑

在使用显示屏显示图像时,往往是将图像数据存放到数组中,然后再通过相应的显示函数将其显示到屏幕上。当图像数据比较大,且程序存储空间又有限的情况下,则会限制正常的实现。那如何来解决此类问题呢?那就需要借助外部的存储器件来解决,由于ESK32-21001扩展板上配有FLASH型存储器MX25L6406E,为此可以使用它来存放图像数据以解决存储空间不知的问题。ESK32-21001上的MX25L6406E电路连接关系,如图1所示。
1.jpg
1 接口电路

有了存储介质,那又该如何来解决数据的来源问题呢?
将图像数据存放到数值的方式显然是行不通的,为此只好借助串行通讯来提供数据。
使用串口来发送数据文件并加以输出测试的效果,见图2所示。
2.jpg
2数据文件收发测试
实现图像文件转存到FLASH来再现图像的主程序如下:
int main(void)
{
         u16 i,j,k,dat;
         u8  sj[80]={0x00};
         UxART_Configuration();  //串口初始化
         app_tft_init();
         ili9341_init();                 // 显示屏初始化
         ili9341_clear(RED);        // 清屏
         set_cursor(0,0);
         gram_prepare();
         SPI_FLASH_Init();         // FLASH初始化
         SPI_FLASH_WriteStatus(0x00);
         SPI_FLASH_SectorErase(FLASH_TEST_ADDR);
         // 接收图像数据并转存到FLASH
         k=0;
         while(k<40)
         {
               i=0;
               while(i<80)
               {
                    if(USART_GetFlagStatus(HTCFG_UART_PORT, USART_FLAG_RXDR) == SET)
                    {
                            dat = USART_ReceiveData(HTCFG_UART_PORT);    // 接收串口数据
                            sj[i]=(u8) dat;
                             i=i+1;
                     }
               }
               SPI_FLASH_BufferWrite(sj, FLASH_TEST_ADDR+k*80, 80);    // 将接收数据存入FLASH
               k=k+1;
         }

         // 从FLASH读取数据以再现图像,图片规格为40*40像素点。
         k=0;
         while(k<40)
         {
               set_cursor(0,k);
               gram_prepare();
               SPI_FLASH_BufferRead(sj,  FLASH_TEST_ADDR+k*80, 80);    // 读取FLASH数据
               for(j=0;j<80;j++)
               {
                      write_data(sj[j]);  // 再现图像
               }
              k=k+1;
       }
       while (1);
}

经程序的编译与下载,其显示效果见图3所示。
这样再有高分辨率的图像显示问题,通过该处理方式就都可以较好地解决了。
3.jpg
3 图像再现



使用特权

评论回复
chenqianqian| | 2022-10-8 20:20 | 显示全部楼层
该芯片的SPI速率可以达到多少?

使用特权

评论回复
jinglixixi|  楼主 | 2022-10-9 10:06 | 显示全部楼层
chenqianqian 发表于 2022-10-8 20:20
该芯片的SPI速率可以达到多少?

据说可达800 MHz

使用特权

评论回复
abotomson| | 2022-11-1 09:39 | 显示全部楼层
如何用单片机读写FLASH?  

使用特权

评论回复
hilahope| | 2022-11-1 09:54 | 显示全部楼层
如何用单片机读写FLASH?  

使用特权

评论回复
geraldbetty| | 2022-11-1 12:01 | 显示全部楼层
fatfs 怎么避免flash擦写寿命  

使用特权

评论回复
tifmill| | 2022-11-1 15:11 | 显示全部楼层
使用文件操作系统了吗              

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-1 15:45 | 显示全部楼层
hilahope 发表于 2022-11-1 09:54
如何用单片机读写FLASH?

移植相应的功能函数

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-1 15:46 | 显示全部楼层
tifmill 发表于 2022-11-1 15:11
使用文件操作系统了吗

没有

使用特权

评论回复
hearstnorman323| | 2022-11-1 16:05 | 显示全部楼层
单片机操作内存卡,读写文本文件?  

使用特权

评论回复
everyrobin| | 2022-11-1 16:52 | 显示全部楼层
怎么对单片机内部flash进行坏块检测?  

使用特权

评论回复
uiint| | 2022-11-1 17:44 | 显示全部楼层
fatfs文件系统读写申请多少内存空间

使用特权

评论回复
averyleigh| | 2022-11-1 18:35 | 显示全部楼层
存储器flash的读取速度是多少  

使用特权

评论回复
caigang13| | 2022-11-1 19:06 | 显示全部楼层
下一步可以移植一个图形界面

使用特权

评论回复
louliana| | 2022-11-1 19:31 | 显示全部楼层
flash能不能移植一个fat文件系统?      

使用特权

评论回复
ingramward| | 2022-11-2 17:18 | 显示全部楼层
fatfs 会很费单片机内存吗  

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-3 10:06 | 显示全部楼层
louliana 发表于 2022-11-1 19:31
flash能不能移植一个fat文件系统?

应该可以,在其他开发板上见过。

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-3 10:07 | 显示全部楼层
ingramward 发表于 2022-11-2 17:18
fatfs 会很费单片机内存吗

应该是,比较是个文件系统呀!

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-3 10:08 | 显示全部楼层
everyrobin 发表于 2022-11-1 16:52
怎么对单片机内部flash进行坏块检测?

写后在读,比较一下。

使用特权

评论回复
jinglixixi|  楼主 | 2022-11-3 10:10 | 显示全部楼层
tifmill 发表于 2022-11-1 15:11
使用文件操作系统了吗

没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则