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

📄 at25640.c

📁 本程序是基于Zigbee协议的无线温度传感器网络系统
💻 C
字号:
#include "wx_lrwpan.h"

#ifdef LRWPAN_RFD

#define		WREN		0X06
#define		WRDI		0X04
#define		READDAT		0X03
#define		WRITEDAT	0x02


//*****************************************************************************************
//函数名:SpisendByte(INT8U dat)
//输入:发送的数据
//输出:无
//功能描述:SPI发送一个字节
//*****************************************************************************************
INT8U SpiTxRxByte(INT8U dat)
{
	INT8U i,temp;
	temp = 0;
	
	SCK = 0;
	for(i=0; i<8; i++)
	{
		if(dat & 0x80)
		{
			MOSI = 1;
		}
		else MOSI = 0;
		dat <<= 1;

		SCK = 1;
		asm("nop");
		temp <<= 1;
		if(MISO)temp++;
		SCK = 0;
		asm("nop");	
	}
	return temp;
}	

//**********************************************************************************
//函数名:void EEPROM_WREN(void)	
//输入:无
//输出:无
//功能描述:EEPROM写使能
//**********************************************************************************
void EEPROM_WREN(void)	
{
	CS_25640 = 0;
	SpiTxRxByte(WREN);
	CS_25640 = 1;
}


//**********************************************************************************
//函数名:void EEPROM_WRDI(void)	
//输入:无
//输出:无
//功能描述:EEPROM写使能关闭
//**********************************************************************************
void EEPROM_WRDI(void)	
{
	CS_25640 = 0;
	SpiTxRxByte(WRDI);
	CS_25640 = 1;
}


//**********************************************************************************
//函数名:void EEPROM_WRITE(unsigned int ADDR, unsigned char dat)	
//输入:ADDR-写入地址,dat-写入的数据。
//输出:无
//功能描述:EEPROM写入一个字节的数据。
//**********************************************************************************
void EEPROM_WRITE_BYTE(INT16U ADDR, INT8U dat)	
{
	INT8U temp;
	
	EEPROM_WREN();				//打开写使能
	
	CS_25640 = 0;
	
	SpiTxRxByte(WRITEDAT);			//写入写数据命令
	
	temp = ADDR >> 8;
	SpiTxRxByte(temp);			//写入高位地址
	
	temp = ADDR;
	SpiTxRxByte(temp);			//写入低位地址
	
	SpiTxRxByte(dat);			//写入数据
	
	CS_25640 = 1;
	
	EEPROM_WRDI();				//关闭写使能
	
}


//**********************************************************************************
//函数名:unsigned char EEPROM_WRITE(unsigned int ADDR)
//输入:无。
//输出:ADDR-读出地址,
//功能描述:EEPROM读出一个字节的数据。
//**********************************************************************************
INT8U EEPROM_READ_BYTE(INT16U ADDR)
{
	INT8U temp;
	
	CS_25640 = 0;
	
	SpiTxRxByte(READDAT);			//写入读数据命令
	
	temp = ADDR >> 8;
	SpiTxRxByte(temp);			//写入高位地址
	
	temp = ADDR;
	SpiTxRxByte(temp);			//写入低位地址
	
	temp = SpiTxRxByte(0);		//读出数据
	
	CS_25640 = 1;
	
	return temp;
}
#endif

	

⌨️ 快捷键说明

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