【小华HC32F448测评】+W25Q64的读写及应用
[复制链接]
HC32F448配有256KB的Flash闪存,利用它可支持TFT屏的图像数据存储,但要实现数码相框那样的多幅图像存储,则需要板W25Q64的配合。
W25Q64的电路如图1所示,共占用6个引脚。
图1 W25Q64电路
W25Q64各引脚的连接关系为:
SCK---PB14
NSS---PC7 (引脚重叠使用)
IO0---P B13
IO1---PD9
IO2---PD10
IO3---PD11
为进行W25Q64读写功能的使用,所配置的TFT显示屏如图2所示,它是直接使用开发板上的LCD屏接口来连接的,故能省去连线的烦扰,并能有效地通过显示的可靠性。
图2 显示屏与开发板连接
TFT屏各引脚的连接关系为:
BLK:PB10
SCK:PA12
DSI:PC4
DC:PE12
RST:PE14
CS :PC7
通过观察会发现这里有引脚重叠使用的情况下,但经实际的测试它不会影响正常的使用。
实现W25Q64存储图像及图像再现的主程序为:
int32_t main(void)
{
int32_t i,j,w;
LL_PERIPH_WE(EXAMPLE_PERIPH_WE);
Init_TFT();
tft_Init();
BACK_COLOR=RED;
POINT_COLOR=WHITE;
LCD_Clear(RED);//YELLOW
LCD_ShowString(80,10,"HC32F448");
LCD_ShowString(80,40,"2.2' TFT");
LCD_DrawLine(0,60, 239, 60);
LCD_DrawLine(0,290, 239, 290);
LCD_ShowString(80,295,"jinglixixi");
BSP_CLK_Init();
BSP_W25QXX_Init();
LL_PERIPH_WP(EXAMPLE_PERIPH_WP);
LoadData();
w=0;
for(j=0;j<7;j++)
{
w=j*4096;
(void)BSP_W25QXX_EraseSector(w);
}
for(j=0;j<7;j++)
{
w=j*4096;
(void)BSP_W25QXX_Write(w+SPI_FLASH_ADDR, gImage_fj+w, SPI_FLASH_DATA_SIZE);
(void)BSP_W25QXX_Write(w+SPI_FLASH_ADDR+2048,gImage_fj+2048+w, SPI_FLASH_DATA_SIZE);
}
Address_set(40,150,199,229);
for(j=0;j<6;j++)
{
w=j*4096;
(void)BSP_W25QXX_Read(w+SPI_FLASH_ADDR, m_au8ReadData, SPI_FLASH_DATA_SIZE);
for(i=0;i<1024;i++)
{
LCD_WR_DATA8(m_au8ReadData[+i*2]);
LCD_WR_DATA8(m_au8ReadData[i*2+1]);
}
(void)BSP_W25QXX_Read(w+SPI_FLASH_ADDR+2048, m_au8ReadData, SPI_FLASH_DATA_SIZE);
for(i=0;i<1024;i++)
{
LCD_WR_DATA8(m_au8ReadData[i*2]);
LCD_WR_DATA8(m_au8ReadData[i*2+1]);
}
}
w=6*4096;
(void)BSP_W25QXX_Read(w+SPI_FLASH_ADDR, m_au8ReadData, SPI_FLASH_DATA_SIZE);
for(i=0;i<512;i++)
{
LCD_WR_DATA8(m_au8ReadData[+i*2]);
LCD_WR_DATA8(m_au8ReadData[i*2+1]);
}
LCD_ShowString(80,70,"W25Q16");
while(1);
}
经程序的编译与下载,其显示效果如图3所示,说明功能设计正常有效。
仿此,就可实现图库的构建及数码相框功能的实现。
图3 图像再现
|