【芯圣SDK-HC89F0541测评】+ W25Q16存储模块读写及应用
本帖最后由 芯圣电子官方QQ 于 2023-7-24 10:01 编辑W25Q16是一款16Mbit(8MB)Flash型存储器件,可用于声音、文本和数据的存储,典型的应用是用于构建中文字库。芯片支持的工作电压2.7V到3.6V,正常工作时电流小于4mA,掉电时低于1uA。工作温度为-40℃到85℃。
要进行W25Q16存储模块读写功能测试需要如下器件:1. W25Q16存储模块2. SDK-HC89F0541开发板3.软按键4.串行通讯模块 图1 测试的基本构成
W25Q16存储模块与开发板的连接关系:CS -- P02D0 -- P26D1 -- P27SCL -- P25
软按键与开发板的连接关系:K1 -- P34K2 -- P33
通讯模块与开发板的连接关系:TXD -- P06RXD -- P07
读取功能程序设计主程序:void main()
{
unsigned int u=0;
P0M6 = 0xC2;
P0M7 = 0x62;
TXD_MAP = 0x06;
RXD_MAP = 0x07;
T4CON = 0x06;
TH4 = 0xFF;
TL4 = 0x98;
SCON2 = 0x02;
SCON = 0x10;
IE |= 0x10;
P0M0 = 0xC2;
P2M5 = 0xC2;
P2M7 = 0xC2;
P2M6 = 0x69;
SS_MAP = 0x00;
MISO_MAP = 0x26;
MOSI_MAP = 0x27;
SCK_MAP = 0x25;
SPDAT = 0x00;
SPSTAT = 0x00;
SPCTL = 0xD3;
P3M4 = 0x62;
P3M3 = 0x62;
P2M4 = 0x62;
RSTDBC = 0xFF;
delay();
id_a = 'K';
id_a = ' ';
id_a = ':';
id_a = ' ';
id_a = ' ';
id_a = '\0';
EA = 1;
while(1)
{
if(K1==0)
{
id_a = '1';
id_a = 'R';
id_a = '+';
UART_Send_Str(id_a);
W25Q16_Read(u,16,guc_Readbuf_a);
UART_Send_String(guc_Readbuf_a,16);
u=u+16;
}
if(K2==0)
{
id_a = '2';
id_a = 'R';
id_a = '-';
UART_Send_Str(id_a);
W25Q16_Read(u,16,guc_Readbuf_a);
UART_Send_String(guc_Readbuf_a,16);
u=u-16;
}
delay();
}
辅助程序数据读取函数:void W25Q16_Read(unsigned int fui_Address,unsigned char Length,unsigned char *fucp_SaveArr)
{
unsigned int i;
W25Q16_WriteEnable();
CS = 0;
SPI_WriteReadData(0x03);
SPI_WriteReadData(0x00);
SPI_WriteReadData((unsigned char)(fui_Address)/256);
SPI_WriteReadData((unsigned char)(fui_Address)%256);
for(i=0;i<Length;i++){fucp_SaveArr=SPI_WriteReadData(0xFF);}
CS = 1;
}
延时函数:void delay(void)
{
int i,j;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++);
}
测试方法:连续按下K1键,向下连续读取多个单元的存储内容;然后连续按下K2键,向上连续读取多个存储单元的内容,以核对读取内容的一致性。图2 读取测试
结论:经实际验证,读取数据具有一致性,证明程序有效、可用。
写的很好,支持一下 期待楼主继续更新作品哦 W25Q16存储模块哪里搞到的? Woo0o 发表于 2021-2-27 23:03
W25Q16存储模块哪里搞到的?
这里买的 https://item.taobao.com/item.htm?spm=a1z09.2.0.0.aebe2e8dmIBQ7d&id=574176992887&_u=r2mfdt0t73f6 谢谢楼主分享 lidi911 发表于 2021-3-3 21:11
谢谢楼主分享
{:handshake:} 楼主的按键是在哪里购买的?
写的非常不错的。 单片机内部没有eeprom吗 差一个oled显示了。 扩展存储可以吗
Flash Rom存储器 比较倾向于eeprom了。 支持最快多大的读取速度呢 代码很给力。 HC89F0541开发板不错。 Flash型存储器件? 能够扩展存储空间吗 W25Q16价格多少呢?