tianxiongweitxw 发表于 2021-6-13 11:36

W25Q80读写操作不成功,写不进去,麻烦高手帮忙看看

//SPI数据读写函数
uchar SPISwap(BYTE dat)        //SPI数据读写函数
{

    SPDAT = dat;                //trigger SPI send
    while (!(SPSTAT & SPIF));   //wait send complete
    SPSTAT = SPIF | WCOL;       //clear SPI status

    return SPDAT;               //return received SPI data
}
////SPI页编程,LEN不能超过255
void WriteW25Q80(long addre,uchar *databuf,uchar LEN)
{
           uchar i=0;
               SPISS = 0; //W25q80芯片使能
       SPISwap(WRITE_ENABLE);               //W25Q80芯片写使能
       SPISwap( BYTE_PAGE_PROGRAM); //页编程命令
       SPISwap((BYTE)( addre>>16)); //写地址高8位        ,共24位
       SPISwap((BYTE)( addre>>8));//写地址中间8位
       SPISwap((BYTE)( addre));          //写地址低8 位
        for(i=0; i<LEN;i++)
        {
           SPISwap(databuf);       
        }   
        SPISwap(WRITE_DISABLE);          //W25Q80芯片写失能
                SPISS = 1;                                  //W25q80芯片失能
}
/////////读取LEN个字节
void ReadW25Q80(long addre,uchar *databuf,uchar LEN)
{
           uchar i=0;
           SPISS = 0; //W25q80芯片使能
           SPISwap(READ_ARREY);//读取命令
           SPISwap((BYTE)( addre>>16)); //写地址高8位        ,共24位
           SPISwap((BYTE)( addre>>8));//写地址中间8位
           SPISwap((BYTE)( addre));          //写地址低8 位
                   for(i=0; i<LEN;i++)
           {
             databuf=SPISwap(0xff);       
           }
       SPISS = 1; //W25q80芯片使能
}

tianxiongweitxw 发表于 2021-6-15 12:26

自己顶下

diweo 发表于 2021-6-15 16:11

不要光看代码,要用逻辑分析仪结合波形来分析。

tianxiongweitxw 发表于 2021-6-15 21:13

原因找到,172k的写入速率正常了,原来写入比读出慢百倍。原以为写入也可以几十m的速度
页: [1]
查看完整版本: W25Q80读写操作不成功,写不进去,麻烦高手帮忙看看