欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2481|回復: 0
收起左側

芯圣SDK-HC89F0541單片機的 W25Q16存儲模塊讀取

[復制鏈接]
ID:776997 發表于 2020-7-14 13:53 | 顯示全部樓層 |閱讀模式
本帖最后由 jinglixixi 于 2020-7-16 00:31 編輯

W25Q16是一款16Mbit8MBFlash型存儲器件,可用于聲音、文本和數據的存儲,典型的應用是用于構建中文字庫。芯片支持的工作電壓2.7V3.6V,正常工作時電流小于4mA,掉電時低于1uA。工作溫度為-40℃到85℃。

要進行W25Q16存儲模塊讀寫功能測試需要如下器件:
1. W25Q16存儲模塊
2. SDK-HC89F0541開發板
3.軟按鍵
4.串行通訊模塊

1.png
1 測試的基本構成

W25Q16存儲模塊與開發板的連接關系:
CS -- P02
D0 -- P26
D1 -- P27
SCL -- P25

軟按鍵與開發板的連接關系:
K1 -- P34
K2 -- P33

通訊模塊與開發板的連接關系:
TXD -- P06
RXD -- P07

讀取功能程序設計
主程序:
  1. void main()   
  2. {
  3.         unsigned int u=0;
  4.         P0M6 = 0xC2;
  5.         P0M7 = 0x62;
  6.         TXD_MAP = 0x06;
  7.         RXD_MAP = 0x07;
  8.         T4CON = 0x06;
  9.         TH4 = 0xFF;
  10.         TL4 = 0x98;
  11.         SCON2 = 0x02;        
  12.         SCON = 0x10;
  13.         IE |= 0x10;
  14.         P0M0 = 0xC2;
  15.         P2M5 = 0xC2;
  16.         P2M7 = 0xC2;
  17.         P2M6 = 0x69;
  18.         SS_MAP = 0x00;
  19.         MISO_MAP = 0x26;
  20.         MOSI_MAP = 0x27;
  21.         SCK_MAP = 0x25;
  22.         SPDAT = 0x00;
  23.         SPSTAT = 0x00;
  24.         SPCTL = 0xD3;
  25.         P3M4 = 0x62;
  26.         P3M3 = 0x62;
  27.         P2M4 = 0x62;
  28.         RSTDBC = 0xFF;
  29.         delay();
  30.         id_a[0] = 'K';
  31.         id_a[1] = ' ';
  32.         id_a[2] = ':';
  33.         id_a[3] = ' ';
  34.         id_a[4] = ' ';
  35.         id_a[5] = '\0';
  36.         EA = 1;
  37.         while(1)
  38.         {
  39.                  if(K1==0)  
  40.                  {
  41.                          id_a[1] = '1';
  42.                          id_a[3] = 'R';
  43.                          id_a[4] = '+';
  44.                          UART_Send_Str(id_a);
  45.                          W25Q16_Read(u,16,guc_Readbuf_a);
  46.                          UART_Send_String(guc_Readbuf_a,16);
  47.                          u=u+16;
  48.                  }
  49.                  if(K2==0)  
  50.                  {
  51.                          id_a[1] = '2';
  52.                          id_a[3] = 'R';
  53.                          id_a[4] = '-';
  54.                          UART_Send_Str(id_a);
  55.                          W25Q16_Read(u,16,guc_Readbuf_a);
  56.                          UART_Send_String(guc_Readbuf_a,16);
  57.                          u=u-16;
  58.                 }
  59.                 delay();
  60. }
復制代碼

數據讀取函數:
  1. void W25Q16_Read(unsigned int fui_Address,unsigned char Length,unsigned char *fucp_SaveArr)
  2. {
  3.          unsigned int i;
  4.    
  5.          W25Q16_WriteEnable();
  6.          CS = 0;
  7.          SPI_WriteReadData(0x03);
  8.          SPI_WriteReadData(0x00);
  9.          SPI_WriteReadData((unsigned char)(fui_Address)/256);  
  10.          SPI_WriteReadData((unsigned char)(fui_Address)%256);
  11.          for(i=0;i<Length;i++){fucp_SaveArr[i]=SPI_WriteReadData(0xFF);}
  12.          CS = 1;
  13. }
復制代碼

延時函數:
  1. void delay(void)
  2. {
  3. int i,j;

  4.          for(i=0;i<1000;i++)
  5.             for(j=0;j<1000;j++);
  6. }
復制代碼

測試方法:
連續按下K1鍵,向下連續讀取多個單元的存儲內容;然后連續按下K2鍵,向上連續讀取多個存儲單元的內容,以核對讀取內容的一致性。
2.png
2 讀取測試

結論:經實際驗證,讀取數據具有一致性,證明程序有效、可用。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表