714|1

1509

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【CW32L052测评】+CW25Q64的读写测试及应用 [复制链接]

 

尽管CW32L052有64KB的FLASH内存,但对于分辨率为240*320像素点的显示屏来说,要显示一幅满屏的图像还困难的。因为这样的一幅满屏的16位色图像要占用153.6KB的存储空间,这是不小的差距。

那能否解决这个问题呢?

方法还是有的,那就是利用板载的W25Q64,见图1所示。

 

图1  W25Q64电路

 

在借助串口的情况下,对W25Q64的读写测试如图2所示。

 

图2 读写测试

 

此外,为了进行后续的测试,又添加了TFT屏的显示功能。

该显示屏是一款2.2寸的显示屏,其显示分辨率为240*320像素点,它是采用SPI接口。

该显示屏与开发板的连接关系为:

CS---PF6

RST---PF4

DC---PF5

DIN---PB9

CLK---PB8

BLK---PF7

 

其输出高低电平的引脚定义为:

#define OLED_CS_Set()     PF06_SETHIGH()

#define OLED_CS_Clr()     PF06_SETLOW()

#define OLED_RST_Set()    PF04_SETHIGH()

#define OLED_RST_Clr()    PF04_SETLOW()

#define OLED_DC_Set()     PF05_SETHIGH()

#define OLED_DC_Clr()     PF05_SETLOW()

#define OLED_SDIN_Set()   PB09_SETHIGH()

#define OLED_SDIN_Clr()   PB09_SETLOW()

#define OLED_SCLK_Set()   PB08_SETHIGH()

#define OLED_SCLK_Clr()   PB08_SETLOW()

#define OLED_BLK_Set()    PF07_SETHIGH()

#define OLED_BLK_Clr()    PF07_SETLOW()

 

相应的引脚配置函数为:

void test_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.Pins = GPIO_PIN_8;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOB, &GPIO_InitStructure);
	GPIO_InitStructure.Pins = GPIO_PIN_9;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOB, &GPIO_InitStructure);
	GPIO_InitStructure.Pins = GPIO_PIN_4;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);
	GPIO_InitStructure.Pins = GPIO_PIN_5;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);
	GPIO_InitStructure.Pins = GPIO_PIN_6;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
	GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);
	GPIO_InitStructure.Pins = GPIO_PIN_7;
    GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStructure.IT = GPIO_IT_NONE;
    GPIO_Init(CW_GPIOF, &GPIO_InitStructure);
}

 

将W25Q64的读写测试信息显示到TFT屏后,其效果如图3所示,这样就便于后续的测试了。

其中,所显示的图像为16位色160*80像素点,约占25.6KB。经测试在显示屏上要显示2幅这样的图像是无法通过编译的。

 

图3 读写测试

 

为此要显示2幅图像,就必须先将图像存放到W25Q64,再通过读取W25Q64来再现图像。

其中实现图像存储到W25Q64的程序为:

if(f)
{
		w=0;
		for(j=0;j<7;j++)
        {
			  SPI_FLASH_SectorErase(w);
			  w=w+4096;
		}
		for(j=0;j<100;j++)
        {
            w=256*j;
		    for(i=0;i<256;i++)
		    {
			    dBuffer[i]=gImage_hy[i+w];
		    }
		    SPI_FLASH_BufferWrite(dBuffer, w, 256);
	   }
}

读取W25Q64再现图像的程序为:

LCD_Address_Set(40,150,199,229);
for(j=0;j<100;j++)
{
      w=256*j;
      SPI_FLASH_BufferRead(dBuffer, w, 256);
	  for(i=0;i<128;i++)
	  {
			if(j<100)
			{
			    LCD_WR_DATA8(dBuffer[i*2]);
                LCD_WR_DATA8(dBuffer[i*2+1]);
			}
	 }
}

 

这样通过多次的图像存储,就可以构建一个图像库,然后通过不同区域的数据就可实现多幅图像的显示。

图4是在屏上实现了2幅图像的显示,如果要显示一幅满屏的图像,则需要将其等分为数段来存储,再将各段内容拼接显示处理即可。

 

图4 显示2幅图像

最新回复

利用板载的W25Q64解决存储空间问题,,,看来是可以的   详情 回复 发表于 2023-8-16 07:33
点赞 关注
 
 

回复
举报

1700

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

利用板载的W25Q64解决存储空间问题,,,看来是可以的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表