⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m25p80程序.txt

📁 flash m25p80的读写程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                      日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_WriteDis(void)
{
    M25_CS_0;      //片选
    M25P80_SPI_Write8(WRDI);    //写禁止
    M25_CS_1;      //禁止片选
    //
    MDelay(10);
}

/*********************************************************************  
*
* 函 数 名:MP25_WriteReg
* 功能描述: 写功能寄存器
* 函数说明: 
* 调用函数:M25P80_SPI_Write8,MP25_WriteEnable
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                         日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_WriteReg(uchar comm)
{
    MP25_WriteEnable();     //写使能
    M25_CS_0;      //片选
    M25P80_SPI_Write8(WRSR);    //写指令
    M25P80_SPI_Write8(comm);    //写数据
    M25_CS_1;      //禁止片选
    MP25_Check();
    MP25_WriteDis();     //写禁止
}
/*********************************************************************  
*
* 函 数 名:M25P80_SPI_Read
* 功能描述: 从M25P80的指定地址读出一字节数
* 函数说明: 
* 调用函数:M25P80_Read
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                        日期:
* 修 改 者:          日期:
* 版    本:VER 1.0
***********************************************************************/
uchar M25P80_SPI_Read(long ADDR)
{ 
    uchar Data_Temp;
    M25_CS_0;       //片选
    M25P80_SPI_Write8(READ);     //写指令
    M25P80_SPI_Write24(ADDR);     //写地址    
    Data_Temp = M25P80_Read();     //数据读出操作 
    M25_CS_1;       //禁止片选
    MDelay(10);
    return (Data_Temp);
}
/*********************************************************************  
*
* 函 数 名:MP25_Write_Byte
* 功能描述: 存储单字节数据
* 函数说明: 
* 调用函数:M25P80_SPI_Write8,MP25_WriteEnable,M25PWriteWait
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                         日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_Write_Byte(long Addr,uchar data)
{
    MP25_WriteEnable();     //写使能
    M25_CS_0;      //片选
    M25P80_SPI_Write8(PP);    //页写指令
    M25P80_SPI_Write24(Addr);    //写指令
    M25P80_SPI_Write8(data);    //写数据
    M25_CS_1;      //禁止片选
    MDelay(10);
    MP25_Check();
    MDelay(10);
    MP25_WriteDis();     //写禁止
}
/*********************************************************************  
*
* 函 数 名:MP25_Write_nByte
* 功能描述: 存储多字节子程序
* 函数说明: 
* 调用函数:M25P80_SPI_Write8,MP25_WriteEnable,M25PWriteWait
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                         日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_Write_nByte(long Addr,uchar *buffer,uchar nByte) //double 改为 uchar
{
    uchar i;
    MP25_WriteEnable();   //写使能
    M25_CS_0;    //片选
    M25P80_SPI_Write8(PP);  //页写指令
    M25P80_SPI_Write24(Addr);  //写指令
    for(i=0 ; i<nByte ; i++)    
    {
       M25P80_SPI_Write8(*(buffer+i)); //写数据
    } 
    M25_CS_1;    //禁止片选
    MDelay(10);
    MP25_Check();
    MP25_WriteDis();   //写禁止
}
/*********************************************************************  
*
* 函 数 名:MP25_EraseSector
* 功能描述: 扇区擦除
* 函数说明: 
* 调用函数:M25P80_SPI_Write8,MP25_WriteEnable,M25PWriteWait
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                    日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_EraseSector(long Addr)
{
    MP25_WriteEnable();   //写使能
    M25_CS_0;    //片选
    M25P80_SPI_Write8(SE);  //扇区擦除指令
    M25P80_SPI_Write24(Addr);         //写指令 
    M25_CS_1;    //禁止片选
    MP25_Check();
    MP25_WriteDis();   //写禁止
}
/*********************************************************************  
*
* 函 数 名:MP25_EraseBulk
* 功能描述: 批擦除
* 函数说明: 
* 调用函数:M25P80_SPI_Write8,MP25_WriteEnable,M25PWriteWait,MP25_WriteDis
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                        日期:
* 修 改 者:                         日期:
* 版    本:VER 1.0
***********************************************************************/
void MP25_EraseBulk(void)
{
    MP25_WriteEnable();   //写使能
    M25_CS_0;    //片选
    M25P80_SPI_Write8(BE);  //批擦除指令 
    M25_CS_1;    //禁止片选
    MP25_Check();   //等待操作完毕
    MP25_WriteDis();   //写禁止
}
/*********************************************************************  
*
* 函 数 名:M25P80_SPI_NRead
* 功能描述: 从M25P80的指定地址读出N个字节
* 函数说明: 
* 调用函数:M25P80_Read
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                         日期:
* 修 改 者:          日期:
* 版    本:VER 1.0
***********************************************************************/
void M25P80_SPI_NRead(long ADDR,uchar *buffer,uchar nByte)  
{
 uchar i;
 M25_CS_0;     //片选
 M25P80_SPI_Write8(READ);   //写指令
 M25P80_SPI_Write24(ADDR);   //写地址
 //Data_Temp = M25P80_Read();   //数据读出操作 
 for(i=0 ; i<nByte ; i++)
 {
     *(buffer+i)=M25P80_Read();   //读取数据
 }
 M25_CS_1;     //禁止片选
        
        MDelay(10);
}
/*********************************************************************  
*
* 函 数 名:M25PWriteStatus
* 功能描述:写状态寄存器
* 函数说明: 
* 调用函数:
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                              日期: 
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void M25PWriteStatus(uchar databyte) 
{
    MP25_WriteEnable();                     // Must enable write latch first
    M25_CS_0;                               // Set CS_N low
    M25P80_SPI_Write8(WRSR);
    //MP25_Check();
    M25P80_SPI_Write8(databyte);
    //MP25_Check();
    M25_CS_1;                              // Set CS_N high
    MDelay(10);
    MP25_Check();
    MP25_WriteDis();
}
/*********************************************************************  
*
* 函 数 名:Init_m25p80
* 功能描述:  初始化M25P80
* 函数说明: 
* 调用函数:
* 全局变量:无
* 输    入: 无
* 返    回: 无
* 设 计 者:                               日期:
* 修 改 者:                               日期:
* 版    本:VER 1.0
***********************************************************************/
void Init_m25p80(void)
{
    M25_CS_1;
    M25_CLK_0;
    M25PWriteStatus(0x00);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -