jinglixixi 发表于 2020-7-14 13:23

【芯圣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 读取测试
结论:经实际验证,读取数据具有一致性,证明程序有效、可用。

Candic12e 发表于 2021-2-27 11:53

写的很好,支持一下 期待楼主继续更新作品哦

Woo0o 发表于 2021-2-27 23:03

W25Q16存储模块哪里搞到的?

jinglixixi 发表于 2021-2-27 23:43

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

谢谢楼主分享

jinglixixi 发表于 2021-3-3 21:15

lidi911 发表于 2021-3-3 21:11
谢谢楼主分享

{:handshake:}

名字是啥样 发表于 2021-3-4 16:48

楼主的按键是在哪里购买的?

51xlf 发表于 2021-3-4 22:12

写的非常不错的。   

i1mcu 发表于 2021-3-4 22:13

单片机内部没有eeprom吗

pmp 发表于 2021-3-4 22:14

差一个oled显示了。

mmbs 发表于 2021-3-4 22:15

扩展存储可以吗

1988020566 发表于 2021-3-4 22:15

         

1988020566 发表于 2021-3-4 22:16


Flash Rom存储器   

lzbf 发表于 2021-3-4 22:18

比较倾向于eeprom了。

houjiakai 发表于 2021-3-4 22:19

支持最快多大的读取速度呢   

youtome 发表于 2021-3-4 22:20

代码很给力。   

cemaj 发表于 2021-3-4 22:20

HC89F0541开发板不错。   

jimmhu 发表于 2021-3-4 22:21

Flash型存储器件?

houjiakai 发表于 2021-3-4 22:21

能够扩展存储空间吗   

lzbf 发表于 2021-3-4 22:21

W25Q16价格多少呢?   
页: [1] 2 3
查看完整版本: 【芯圣SDK-HC89F0541测评】+ W25Q16存储模块读写及应用