📄 spi45db041.c
字号:
* 功能: 读主存储区一个页的数据到buffer2
* 参数: PageAddress 需要读的主存储区的页地址
* 返回值:无
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void ReadOnePageToBuffer2(unsigned int PageAddress)
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x55,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,4); //送4 bit 的保留位
SPI45D041_WriteBits(PageAddress,11);//送11位的页地址
SPI45D041_WriteBits(0x00,9); //送9位的页内地址
P2OUT|=SPI45DB041_CS;
NOP();
delay(10000);
}
/********************************************************\
* 函数名:ReadByteFromBuffer1
作用域:外部文件调用
* 功能: 在buffer1中的一个指定地址读一个字节的数据
* 参数: ByteAddress 指定字节在页内的地址
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
/*
unsigned char ReadByteFromBuffer1(unsigned int ByteAddress)
{
unsigned char Buffer1OneByte;
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x54,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,15); //送15 bit 的保留位
SPI45D041_WriteBits(ByteAddress,9);//送11位的页地址
SPI45D041_WriteBits(0x00,8); //送8 bit 的保留位
NOP();
Buffer1OneByte=SPI45D041_ReadByte();
return(Buffer1OneByte);
}
*/
/********************************************************\
* 函数名:ReadNextFromBuffer1
作用域:外部文件调用
* 功能: 读buffer1中的下一个地址的字节数据(配合的与ReadByteBuffer1一起使用)
* 参数: 无
* 返回值:Buffer1NextByte
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
/*
unsigned char ReadNextFromBuffer1(void)
{
unsigned char Buffer1NextByte;
Buffer1NextByte=SPI45D041_ReadByte();
return(Buffer1NextByte);
}
*/
/********************************************************\
* 函数名:ReadByteFromBuffer2
作用域:外部文件调用
* 功能: 在buffer2中的一个指定地址读一个字节的数据
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
unsigned char ReadByteFromBuffer2(unsigned int ByteAddress)
{
unsigned char Buffer2OneByte;
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x56,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,15); //送15 bit 的保留位
SPI45D041_WriteBits(ByteAddress,9); //送11位的页地址
SPI45D041_WriteBits(0x00,8); //送8 bit 的保留位
NOP();
Buffer2OneByte=SPI45D041_ReadByte();
return(Buffer2OneByte);
}
/********************************************************\
* 函数名:ReadNextFromBuffer2
作用域:外部文件调用
* 功能: 读buffer2中的下一个地址的字节数据(配合的与ReadByteBuffer2一起使用)
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
unsigned char ReadNextFromBuffer2(void)
{
unsigned char Buffer2NextByte;
Buffer2NextByte=SPI45D041_ReadByte();
return(Buffer2NextByte);
}
/********************************************************\
* 函数名:WriteOneByteToBuffer1
作用域:外部文件调用
* 功能: 在buffer1中的一个指定的地址写一个字节
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
/*
void WriteOneByteToBuffer1(unsigned int ByteAddress,unsigned char WriteOneByte )
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x84,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,15); //送15 bit 的NOP
SPI45D041_WriteBits(ByteAddress,9); //送9 bit 的页内地址
SPI45D041_WriteBits(WriteOneByte,8);
NOP();
}
*/
/********************************************************\
* 函数名:WriteNextByteToBuffer1
作用域:外部文件调用
* 功能: 写buffer1中的下一个地址(必须配合WriteOneByteToBuffer1一起使用)
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
/*
void WriteNextByteToBuffer1(unsigned char WriteNextOne)
{
SPI45D041_WriteBits(WriteNextOne,8);
}
*/
/********************************************************\
* 函数名:WriteOneByteToBuffer2
作用域:外部文件调用
* 功能: 在buffer2中的一个指定的地址写一个字节
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void WriteOneByteToBuffer2(unsigned int ByteAddress,unsigned char WriteOneByte )
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x87,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,15); //送15 bit 的NOP
SPI45D041_WriteBits(ByteAddress,9); //送9 bit 的页内地址
SPI45D041_WriteBits(WriteOneByte,8);
NOP();
}
/********************************************************\
* 函数名:WriteNextByteToBuffer2
作用域:外部文件调用
* 功能: 写buffer2中的下一个地址(必须配合WriteOneByteToBuffer2一起使用)
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void WriteNextByteToBuffer2(unsigned char WriteNextOne)
{
SPI45D041_WriteBits(WriteNextOne,8);
}
/********************************************************\
* 函数名:WriteBuffer1ToPage
作用域:外部文件调用
* 功能: 将buffer1中的数据写入主存储区一个指定的页,前提条件是buffer1中确定是需要写入的数据
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
/*
void WriteBuffer1ToPage(unsigned int PageAddress)
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x83,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,4); //送4 bit 的保留位
SPI45D041_WriteBits(PageAddress,11);//送11 bit 的页地址
SPI45D041_WriteBits(0x00,9); //送9 bit 的NOP
P2OUT|=SPI45DB041_CS;
NOP();
delay(100000);
}
*/
/********************************************************\
* 函数名:WriteBuffer2ToPage
作用域:外部文件调用
* 功能: 将buffer2中的数据写入主存储区一个指定的页,前提条件是buffer2中确定是需要写入的数据
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void WriteBuffer2ToPage(unsigned int PageAddress)
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x86,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,4); //送4 bit 的保留位
SPI45D041_WriteBits(PageAddress,11);//送11 bit 的页地址
SPI45D041_WriteBits(0x00,9); //送9 bit 的NOP
P2OUT|=SPI45DB041_CS;
NOP();
delay(100000);
}
/********************************************************\
* 函数名:EraseOnePage
作用域:外部文件调用
* 功能: 指定
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void EraseOnePage(unsigned int PageAddress)
{
P2OUT|=SPI45DB041_SCK;
NOP();
P2OUT&=~SPI45DB041_CS;
NOP();
SPI45D041_WriteBits(0x81,8); //送8 bit 的命令字
SPI45D041_WriteBits(0x00,4); //送4 bit 的保留位
SPI45D041_WriteBits(PageAddress,11);//送11 bit 的页地址
SPI45D041_WriteBits(0x00,9); //送9 bit 的NOP
P2OUT|=SPI45DB041_CS;
NOP();
delay(80000);
}
/********************************************************\
* 函数名:OperateSPIEnd
作用域:外部文件调用
* 功能: 结束SPI的操作
* 参数:
* 返回值:
* 创建人:
*
* 修改历史:(每条详述)
\********************************************************/
void OperateSPIEnd(void)
{
NOP();
P2OUT|=SPI45DB041_CS;
NOP();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -