亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dsp2812x5043spi.txt

?? DSP2812 與X5043 SPI的連接程序
?? TXT
字號(hào):
//DSP2812  與X5043  SPI的連接程序,經(jīng)過(guò)驗(yàn)證可以使用


#define		WREN	0x0600
#define		WRDI	0x0400
#define		RDSR	0x0500
#define		WRSR	0x0100
#define		READL	0x0300
#define		READH	0x0b00

#define		WRITEL	0x0200
#define		WRITEH	0x0A00


extern void EEPROM_Write_Enable(void);
extern void EEPROM_Write_Disable(void);
extern unsigned int EEPROM_Read_Status(void);
void EEPROM_Write_Status(unsigned int write_status);
extern unsigned int EEPROM_Read(unsigned int address);
extern void EEPROM_Write(unsigned int address,unsigned int data);
extern void delay_time(unsigned int data);
extern void EEPROM_Page_Write(unsigned int address,unsigned int data[],unsigned int number);

extern void Reset_Rtc(void);
extern void Write_Sta_Register(unsigned int data);

extern unsigned int test_5043(void);	//用于測(cè)試5043的內(nèi)部數(shù)據(jù),共選擇了5個(gè)點(diǎn),正常情況下不會(huì)破壞內(nèi)部的數(shù)據(jù)。返回OK

extern unsigned int Init_5043_canshu(void);	//初始化系統(tǒng)參數(shù)表


//SPI 變量   
extern unsigned int Spi_VarRx[100];
extern unsigned int Spi_VarTx[100];
extern unsigned int k;




void InitSpi(void)
{
	/* 8 bit data */
	SpiaRegs.SPICCR.all = 0x07;
	
	SpiaRegs.SPICTL.all = 0x0e;//SpiaRegs.SPICTL.all = 0x0E;
	
	SpiaRegs.SPIBRR = 0xa;
	
	
	SpiaRegs.SPIPRI.all = 0x30;	// free run
	
	SpiaRegs.SPICCR.all = 0x87;

	//PieCtrl.PIEIER6.bit.INTx1 = 1;
	//PieCtrl.PIEIER6.bit.INTx2 = 1;
}

unsigned int Spi_TxReady(void)
{
	unsigned int in;
	if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG == 1)
	{
		in = 0;
	}
	else
	{
		in = 1;
	}
	return(in);
}

unsigned int Spi_RxReady(void)
{
	unsigned int im;
	if(SpiaRegs.SPISTS.bit.INT_FLAG == 1)
	{
		im = 1;
	}
	else
	{
		im = 0;
	}
	return(im);	
}


/*********************************************************************
	函數(shù)名:	void EEPROM_Write_Enable(void)
	目的:		EEPROM的寫(xiě)使能
	輸入:		無(wú)
	輸出:		無(wú)
*********************************************************************/
void EEPROM_Write_Enable(void)
{
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = WREN;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	delay_time(60);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
}

/*********************************************************************
	函數(shù)名:	void EEPROM_Write_Disable(void)
	目的:		EEPROM的寫(xiě)關(guān)閉
	輸入:		無(wú)
	輸出:		無(wú)
*********************************************************************/
void EEPROM_Write_Disable(void)
{
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = WRDI;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	delay_time(100);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
}

/*********************************************************************
	函數(shù)名:	unsigned int EEPROM_Read_Status(void)
	目的:		EEPROM的讀狀態(tài)
	輸入:		無(wú)
	輸出:		無(wú)
*********************************************************************/
unsigned int EEPROM_Read_Status()
{
	unsigned int i1,data;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);	
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;	
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = RDSR;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = 0x00;
	for(i1 = 0; i1 < 200; i1++);////////本延時(shí)特別關(guān)鍵,必須要有
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_RxReady() == 0);
	//發(fā)送SPI
	data = SpiaRegs.SPIRXBUF;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
	//
	return data;
}

/*********************************************************************
	函數(shù)名:	void EEPROM_Write_Status(unsigned int write_status)
	目的:		EEPROM的寫(xiě)狀態(tài)
	輸入:		write_status	寫(xiě)狀態(tài)寄存器的控制字
	輸出:		無(wú)
*********************************************************************/
void EEPROM_Write_Status(unsigned int write_status)
{
    unsigned int i;
    EEPROM_Write_Enable();//寫(xiě)使能
	//判斷SPI發(fā)送準(zhǔn)備好	
	while(Spi_TxReady() == 0);
	//
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = WRSR;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = write_status<<8;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	delay_time(100);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
	//
	for(i = 0; i < 100; i++);
}

/*********************************************************************
	函數(shù)名:	unsigned int EEPROM_Read(unsigned int address)
	目的:		EEPROM的讀
	輸入:		length		讀EEPROM的8位BYTE長(zhǎng)度
			address		讀EEPROM的首地址,16BIT	
	輸出:		無(wú)
*********************************************************************/
unsigned int EEPROM_Read(unsigned int address)
{
	unsigned int i1,j1;
	unsigned int data;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	if(address>=0x100)
		{
		SpiaRegs.SPITXBUF = READH;
		}
	else
		{
		SpiaRegs.SPITXBUF = READL;
		}
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = address<<8;
	for(i1 = 0; i1 < 50; i1++);
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = 0x5500;
	for(j1 = 0; j1 < 1000; j1++);////////本延時(shí)特別關(guān)鍵,必須要有
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_RxReady() == 0);
	//發(fā)送SPI
	data = SpiaRegs.SPIRXBUF;	
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
	return data;
}

/*********************************************************************
	函數(shù)名:	void EEPROM_Write(unsigned int address,unsigned int data)
	目的:		EEPROM的寫(xiě)
	輸入:		address		寫(xiě)地址
				data		寫(xiě)數(shù)據(jù)
	輸出:		無(wú)
*********************************************************************/
void EEPROM_Write(unsigned int address,unsigned int data)
{
  unsigned int i;
	EEPROM_Write_Enable();
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	if(address>=0x100)
		{
		SpiaRegs.SPITXBUF = WRITEH;
		}
	else
		{
		SpiaRegs.SPITXBUF = WRITEL;
		}
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = address<<8;
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = data << 8 ;
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);	
    while((EEPROM_Read_Status()&0x01) == 0x01);        
    //GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
    GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
	for(i = 0; i < 100; i++);	
}

/*********************************************************************
	函數(shù)名:	void EEPROM_Page_Write(unsigned int address,unsigned int data[],unsigned int number)
	目的:		EEPROM的分頁(yè)寫(xiě)入
	輸入:		address		要寫(xiě)入的開(kāi)始地址
				data		要寫(xiě)入的數(shù)據(jù)組
				number		需要寫(xiě)入的數(shù)據(jù)個(gè)數(shù)(1-14)
	輸出:		無(wú)
	說(shuō)明:		由于特殊原因,最多寫(xiě)入十四個(gè)字節(jié),最后的兩個(gè)字節(jié)是亂數(shù)據(jù)
*********************************************************************/
void EEPROM_Page_Write(unsigned int address,unsigned int data[],unsigned int number)
{
	unsigned int n;
	EEPROM_Write_Enable();
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;
	//發(fā)送SPI
	if(address>=0x100)
		{
		SpiaRegs.SPITXBUF = WRITEH;
		}
	else
		{
		SpiaRegs.SPITXBUF = WRITEL;
		}	
	//判斷SPI發(fā)送準(zhǔn)備好
	while(Spi_TxReady() == 0);
	//發(fā)送SPI
	SpiaRegs.SPITXBUF = address << 8;	
	for(n=0; n < number; n++)
		{
		while(Spi_TxReady() == 0);
		//發(fā)送SPI
		SpiaRegs.SPITXBUF = (data[n] << 8 );			
	 	//判斷SPI發(fā)送準(zhǔn)備好	 	
		}	
	while(Spi_TxReady() == 0);	 	
	while((EEPROM_Read_Status()&0x01) == 0x01);
	//GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;
}


unsigned int test_5043(void)	//用于測(cè)試5043的內(nèi)部數(shù)據(jù),共選擇了5個(gè)點(diǎn),正常情況下不會(huì)破壞內(nèi)部的數(shù)據(jù)。返回OK
{
unsigned int xe,tmp;
for(i=0;i<5;i++)
	{
	xe=EEPROM_Read(i*2);
	EEPROM_Write(i*2,0xaa);
	tmp=EEPROM_Read(i*2);
	if(tmp==0xaa)
		{
		EEPROM_Write(i*2,0x55);
		tmp=EEPROM_Read(i*2);	
		if(tmp==0x55)
			{
			EEPROM_Write(i*2,xe);
			}	
		else
			{
			return(NOK);
			}	
		}
	else
		{
		return(NOK);
		}
	}	
return(OK);
}


void main(void)
{	
	InitSysCtrl();	//初始化系統(tǒng)					
	DINT;			//關(guān)中斷
	IER = 0x0000;
	IFR = 0x0000;	
	InitPieCtrl();	//初始化PIE中斷	
	InitPieVectTable();	//初始化PIE中斷矢量表		
	InitGpio();			//初始化開(kāi)入和開(kāi)出 等很多設(shè)備


    InitSpi();		//初始化SPI EEROM          

    
    IER = 0x011d;
	EINT;   
	ERTM;							
	while(1)
		{	
		}
} 	












?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产综合视频在线观看 | 亚洲国产精品一区二区www在线 | 午夜精品爽啪视频| 一区二区三区久久久| 国产精品成人免费在线| 中文字幕一区二区三区四区| 亚洲欧美一区二区视频| 综合激情网...| 亚洲美女视频在线观看| 一区二区三区四区五区视频在线观看| 亚洲日本一区二区| 亚洲一二三专区| 三级久久三级久久| 日本aⅴ精品一区二区三区| 欧美bbbbb| 国内成人自拍视频| 成人av在线播放网址| 91蜜桃视频在线| 欧美午夜精品久久久| 制服丝袜在线91| 久久综合狠狠综合久久综合88| 国产亚洲综合色| 国产精品久久久久久久岛一牛影视 | 欧美性欧美巨大黑白大战| 欧美日韩中字一区| 日韩三区在线观看| 中文字幕国产精品一区二区| 亚洲欧美一区二区三区极速播放| 一区二区三区成人| 日韩精品一级中文字幕精品视频免费观看 | 国产成人免费视频网站| www.综合网.com| 欧洲一区二区三区在线| 日韩欧美黄色影院| 国产视频在线观看一区二区三区| 亚洲欧美另类图片小说| 天天影视涩香欲综合网| 国产福利视频一区二区三区| 99久久亚洲一区二区三区青草| 欧美亚洲一区二区在线| 久久综合色8888| 亚洲精品水蜜桃| 久久精品国产免费| 99这里只有精品| 91精品国产综合久久福利软件| 久久蜜桃一区二区| 亚洲一区二区免费视频| 国产一区二区三区免费| 日本韩国一区二区三区视频| 日韩免费电影一区| 亚洲久本草在线中文字幕| 久久99国产精品尤物| 99久久综合国产精品| 欧美一区二区三区小说| 中文字幕免费在线观看视频一区| 性做久久久久久| 成人听书哪个软件好| 欧美日韩精品一区二区三区蜜桃| 中文字幕av免费专区久久| 午夜欧美2019年伦理| 岛国精品在线播放| 日韩丝袜情趣美女图片| 一区二区三区电影在线播| 精品成人一区二区| 亚洲尤物视频在线| 国产福利一区在线观看| 7777精品久久久大香线蕉| 国产精品久久久久国产精品日日| 美女视频免费一区| 欧美中文一区二区三区| 国产精品久久久久天堂| 国产在线国偷精品免费看| 欧美色国产精品| 椎名由奈av一区二区三区| 久国产精品韩国三级视频| 欧美日韩亚洲综合在线| 亚洲欧洲日韩av| 国产精品亚洲一区二区三区在线 | 国产精品高清亚洲| 久久精品999| 欧美一区二区三区影视| 亚洲午夜激情av| 91在线高清观看| 国产精品久久国产精麻豆99网站| 精品一区二区三区在线播放| 91精品国产高清一区二区三区蜜臀| 亚洲精品成a人| www.亚洲色图.com| 中文无字幕一区二区三区| 国产一区二区影院| 欧美成人bangbros| 日本一不卡视频| 在线播放中文一区| 性欧美大战久久久久久久久| 欧美午夜寂寞影院| 亚洲成人av资源| 欧美日韩中字一区| 午夜一区二区三区视频| 欧美午夜一区二区| 亚洲h精品动漫在线观看| 在线看不卡av| 亚洲成人午夜电影| 欧美伦理影视网| 日韩综合小视频| 欧美电影在线免费观看| 日日骚欧美日韩| 7878成人国产在线观看| 肉肉av福利一精品导航| 日韩一级视频免费观看在线| 久久精品久久精品| 久久久久亚洲蜜桃| 成人影视亚洲图片在线| 中文字幕高清一区| 91丨porny丨最新| 亚洲午夜免费福利视频| 欧美精品在线视频| 久久黄色级2电影| 青青草原综合久久大伊人精品| 91麻豆精品国产| 精品午夜久久福利影院 | 日韩成人免费在线| 日韩一区二区免费在线电影| 裸体健美xxxx欧美裸体表演| 久久亚洲综合色一区二区三区 | 欧美刺激脚交jootjob| 久久国产精品无码网站| 国产欧美精品国产国产专区| 国产成人精品一区二区三区四区| 中国色在线观看另类| 色婷婷亚洲婷婷| 婷婷丁香激情综合| 久久夜色精品一区| 99国产精品99久久久久久| 亚洲一区二区免费视频| 91精品欧美综合在线观看最新| 激情综合色综合久久| 国产精品丝袜一区| 欧美色综合天天久久综合精品| 天天操天天干天天综合网| 国产视频一区不卡| 欧洲视频一区二区| 精品一区二区三区香蕉蜜桃| 中文字幕一区二区三区色视频| 欧美视频一区在线观看| 国产精一品亚洲二区在线视频| 日韩理论电影院| 日韩一区二区三区视频在线 | 国产亚洲短视频| 91色porny在线视频| 日本不卡一区二区三区| 国产亚洲欧美一区在线观看| 91国内精品野花午夜精品| 久久99久久99| 亚洲欧美福利一区二区| 精品欧美久久久| 日本国产一区二区| 国产成人高清在线| 亚洲成av人**亚洲成av**| 久久精品一区蜜桃臀影院| 欧美唯美清纯偷拍| 大尺度一区二区| 麻豆视频观看网址久久| 一区二区三区在线不卡| 国产视频一区在线播放| 制服视频三区第一页精品| 成人av片在线观看| 精品一区二区三区在线观看国产| 一区二区三区精品在线| 国产日韩欧美精品综合| 午夜精品久久久久| 中文字幕精品一区| 久久天堂av综合合色蜜桃网| 欧美日韩黄视频| 91影视在线播放| 国产福利一区二区三区在线视频| 日日夜夜精品视频免费| 亚洲精品国产无天堂网2021| 国产日韩在线不卡| 欧美一级xxx| 欧美亚洲动漫另类| caoporen国产精品视频| 狠狠色2019综合网| 日本成人在线不卡视频| 亚洲国产日韩a在线播放性色| 国产精品久久久久久久久免费樱桃 | 99久久精品国产观看| 国产精品1区二区.| 激情深爱一区二区| 久久电影网电视剧免费观看| 午夜av电影一区| 一区二区不卡在线播放| 最近中文字幕一区二区三区| 国产欧美一区二区三区在线老狼| 日韩你懂的在线观看| 欧美一级搡bbbb搡bbbb| 欧洲亚洲精品在线| 在线这里只有精品| 欧美亚洲国产一区在线观看网站| 色综合久久久久久久久| 91免费观看在线|