📄 m25p80程序.txt
字号:
* 全局变量:无
* 输 入: 无
* 返 回: 无
* 设 计 者: 日期:
* 修 改 者: 日期:
* 版 本: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 + -