查看: 3280|回复: 0

NXP S08P-LITE-V3开发板试用 6、SPI FLASH -- W25Q32读写测试i

[复制链接]
  • TA的每日心情
    开心
    2024-10-25 14:50
  • 签到天数: 1071 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2018-11-28 23:59:29 | 显示全部楼层 |阅读模式
    分享到:



        SPI FLASH 读写测试,向扇区0写入255个字节,然后重读出来,通过串口显示出来。
        一、硬件电路


        1.png
       
        二、程序
       
        2.1、SPI FLASH初始化
       
    1. void W25Q32_Init(void)
    2. {
    3.     //Init_SPI;
    4.     SPI1_Init();
    5. }
    复制代码

        2.2、SPI FLASH 读写测试
       
    1. void W25Q32_Test(void)
    2. {
    3.          uint8_t i;
    4.          uint8_t deviceID;                                //设备ID
    5.          uint8_t returnResult;                        //返回结果
    6.        
    7.          deviceID = flash_read_deviceid();                        //读设备ID
    8.          printf("W25Q32 test: read device ID is 0x%x\n", deviceID);
    9.          
    10.          printf("W25Q32 test: erase flash sector 0 \n");
    11.          returnResult = flash_sector_erase(0);                                //擦除扇区0
    12.          
    13.          printf("W25Q32 test: write data \n");
    14.        
    15.          for(i=0;i<255;i++)
    16.          {
    17.                  WriteBuffer[i]=i;
    18.                  printf("  %x", WriteBuffer[i]);
    19.                  if((i+1)%20==0)
    20.                  {
    21.                          printf("\n");
    22.                  }
    23.          }
    24.          
    25.          printf("\r\n");
    26.          
    27.          returnResult = flash_write_sector(0, WriteBuffer, 255);   //写255个字节数据
    28.          
    29.          printf("W25Q32 test: reda data \n");
    30.          returnResult = flash_read_data(0, ReadBuffer, 255);              //读255个字节数据
    31.          
    32.          for(i=0;i<255;i++)
    33.          {
    34.                  printf("  %x", ReadBuffer[i]);
    35.                  if((i+1)%20==0)
    36.                  {
    37.                          printf("\n");
    38.                  }
    39.          }
    40.          printf("\r\n");  
    41. }
    复制代码

        2.4、主程序
       
    1. void main(void)
    2. {
    3.     uint8_t i = 0;
    4.     uint8_t j=0;
    5.     uint32_t cnt=0;
    6.     uint16_t adc_val=0;
    7.     //char adc_buf[10];
    8.     float adc_val1=0;
    9.     uint16_t adc_val2=0;
    10.    
    11.     uint8_t u8IRDATxCnt = 0;
    12.    
    13.     volatile uint8_t w25q32_id = 0;
    14.     volatile unsigned char dummy;
    15.     unsigned short uiCount;
    16.    
    17.     Sys_Init();
    18.     EnableInterrupts;

    19.     printf("\n-- S08-LITE FAT BEGINS --\n");
    20.     printf("\n");
    21.    
    22.     MTIM1_Init();

    23.         W25Q32_Init();
    24.         W25Q32_Test();
    25.    
    26.     RTC_Init();

    27.    
    28.     printf("\n-- S08-LITE FAT ENDS --\n");


    29.     //Initialize MTIM0, 625Hz interrupt interval, used for toggle LED
    30.     MTIM0_Init();
    31.     MTIM0_Start();
    32.    
    33.     while (1);
    34.    
    35. }
    复制代码

        三、程序执行结果
       
        101.png    
       

































    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 22:48 , Processed in 0.121090 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.