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

📄 spi45db041.c

📁 车载GPS监控终端的完整代码,与监控中心的通讯采用GPRS.
💻 C
📖 第 1 页 / 共 2 页
字号:
*	功能: 	读主存储区一个页的数据到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 + -