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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sst25vf016b.c

?? SST 的SPI FLASH 驅動程序,給大家在做SPI是做參考用,
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*									*//* Returns:								*//*		Nothing							*//*									*//************************************************************************/void Auto_Add_IncA(unsigned long Dst, unsigned char byte1, unsigned char byte2){	CE_Low();				/* enable device */	Send_Byte(0xAD);			/* send AAI command */	Send_Byte(((Dst & 0xFFFFFF) >> 16)); 	/* send 3 address bytes */	Send_Byte(((Dst & 0xFFFF) >> 8));	Send_Byte(Dst & 0xFF);	Send_Byte(byte1);			/* send 1st byte to be programmed */		Send_Byte(byte2);			/* send 2nd byte to be programmed */	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE:	Auto_Add_IncB						*//*									*//* This procedure programs consecutive addresses of 2 bytes of data into*//* the device:  1st data byte will be programmed into the initial 	*//* address [A23-A1] and with A0 = 0.  The 2nd data byte will be be 	*//* programmed into initial address [A23-A1] and with A0  = 1.    This  	*//* is used after Auto_Address_IncA.					*//* Assumption:  Address being programmed is already erased and is NOT	*//*		block protected.					*//*									*//* Note: Only WRDI and AAI command can be executed once in AAI mode 	*//*	 with SO enabled as RY/BY# status.  When the device is busy 	*//*	 asserting CE# will output the status of RY/BY# on SO.  Use WRDI*//* 	 to exit AAI mode unless AAI is programming the last address or *//*	 last address of unprotected block, which automatically exits 	*//*	 AAI mode.							*//*									*//* Input:								*//*									*//*		byte1:		1st byte to be programmed		*//*		byte2:		2nd byte to be programmed		*//*      								*//*									*//* Returns:								*//*		Nothing							*//*									*//************************************************************************/void Auto_Add_IncB(unsigned char byte1, unsigned char byte2){	CE_Low();				/* enable device */	Send_Byte(0xAD);			/* send AAI command */	Send_Byte(byte1);			/* send 1st byte to be programmed */	Send_Byte(byte2);			/* send 2nd byte to be programmed */	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE:	Auto_Add_IncA_EBSY					*//*									*//* This procedure is the same as procedure Auto_Add_IncA except that it *//* uses EBSY and Poll_SO functions to check for RY/BY. It programs 	*//* consecutive addresses of the device.  The 1st data byte will be 	*//* programmed into the initial address [A23-A1] and with A0 = 0.  The 	*//* 2nd data byte will be programmed into initial address [A23-A1] and 	*//* with A0  = 1.  This is used to to start the AAI process.  It should  *//* be followed by Auto_Add_IncB_EBSY.					*//* Assumption:  Address being programmed is already erased and is NOT	*//*		block protected.					*//*									*//*									*//* Note: Only WRDI and AAI command can be executed once in AAI mode 	*//*	 with SO enabled as RY/BY# status.  When the device is busy 	*//*	 asserting CE# will output the status of RY/BY# on SO.  Use WRDI*//* 	 to exit AAI mode unless AAI is programming the last address or *//*	 last address of unprotected block, which automatically exits 	*//*	 AAI mode.							*//*									*//* Input:								*//*		Dst:		Destination Address 000000H - 1FFFFFH	*//*		byte1:		1st byte to be programmed		*//*      	byte1:		2nd byte to be programmed		*//*									*//* Returns:								*//*		Nothing							*//*									*//************************************************************************/void Auto_Add_IncA_EBSY(unsigned long Dst, unsigned char byte1, unsigned char byte2){	EBSY();					/* enable RY/BY# status for SO in AAI */		CE_Low();				/* enable device */	Send_Byte(0xAD);			/* send AAI command */	Send_Byte(((Dst & 0xFFFFFF) >> 16)); 	/* send 3 address bytes */	Send_Byte(((Dst & 0xFFFF) >> 8));	Send_Byte(Dst & 0xFF);	Send_Byte(byte1);			/* send 1st byte to be programmed */		Send_Byte(byte2);			/* send 2nd byte to be programmed */	CE_High();				/* disable device */		Poll_SO();				/* polls RY/BY# using SO line */}/************************************************************************//* PROCEDURE:	Auto_Add_IncB_EBSY					*//*									*//* This procedure is the same as Auto_Add_IncB excpet that it uses 	*//* Poll_SO to poll for RY/BY#.  It demonstrate on how to use DBSY after	*//* AAI programmming is completed.  It programs consecutive addresses of *//* the device.  The 1st data byte will be programmed into the initial   *//* address [A23-A1] and with A0 = 0.  The 2nd data byte will be 	*//* programmed into initial address [A23-A1] and with A0  = 1.  This is 	*//* used after Auto_Address_IncA.					*//* Assumption:  Address being programmed is already erased and is NOT	*//*		block protected.					*//*									*//* Note: Only WRDI and AAI command can be executed once in AAI mode 	*//*	 with SO enabled as RY/BY# status.  When the device is busy 	*//*	 asserting CE# will output the status of RY/BY# on SO.  Use WRDI*//* 	 to exit AAI mode unless AAI is programming the last address or *//*	 last address of unprotected block, which automatically exits 	*//*	 AAI mode.							*//*									*//* Input:								*//*									*//*		byte1:		1st byte to be programmed		*//*		byte2:		2nd byte to be programmed		*//*      								*//*									*//* Returns:								*//*		Nothing							*//*									*//************************************************************************/void Auto_Add_IncB_EBSY(unsigned char byte1, unsigned char byte2){	CE_Low();				/* enable device */	Send_Byte(0xAD);			/* send AAI command */	Send_Byte(byte1);			/* send 1st byte to be programmed */	Send_Byte(byte2);			/* send 2nd byte to be programmed */	CE_High();				/* disable device */	Poll_SO();				/* polls RY/BY# using SO line */	WRDI(); 				/* Exit AAI before executing DBSY */	DBSY();					/* disable SO as RY/BY# output if in AAI */}/************************************************************************//* PROCEDURE: Chip_Erase						*//*									*//* This procedure erases the entire Chip.				*//*									*//* Input:								*//*		None							*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Chip_Erase(){							CE_Low();				/* enable device */	Send_Byte(0x60);			/* send Chip Erase command (60h or C7h) */	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE: Sector_Erase						*//*									*//* This procedure Sector Erases the Chip.				*//*									*//* Input:								*//*		Dst:		Destination Address 000000H - 1FFFFFH	*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Sector_Erase(unsigned long Dst){	CE_Low();				/* enable device */	Send_Byte(0x20);			/* send Sector Erase command */	Send_Byte(((Dst & 0xFFFFFF) >> 16)); 	/* send 3 address bytes */	Send_Byte(((Dst & 0xFFFF) >> 8));	Send_Byte(Dst & 0xFF);	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE: Block_Erase_32K						*//*									*//* This procedure Block Erases 32 KByte of the Chip.			*//*									*//* Input:								*//*		Dst:		Destination Address 000000H - 1FFFFFH	*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Block_Erase_32K(unsigned long Dst){	CE_Low();				/* enable device */	Send_Byte(0x52);			/* send 32 KByte Block Erase command */	Send_Byte(((Dst & 0xFFFFFF) >> 16)); 	/* send 3 address bytes */	Send_Byte(((Dst & 0xFFFF) >> 8));	Send_Byte(Dst & 0xFF);	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE: Block_Erase_64K						*//*									*//* This procedure Block Erases 64 KByte of the Chip.			*//*									*//* Input:								*//*		Dst:		Destination Address 000000H - 1FFFFFH	*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Block_Erase_64K(unsigned long Dst){	CE_Low();				/* enable device */	Send_Byte(0xD8);			/* send 64KByte Block Erase command */	Send_Byte(((Dst & 0xFFFFFF) >> 16)); 	/* send 3 address bytes */	Send_Byte(((Dst & 0xFFFF) >> 8));	Send_Byte(Dst & 0xFF);	CE_High();				/* disable device */}/************************************************************************//* PROCEDURE: Wait_Busy							*//*									*//* This procedure waits until device is no longer busy (can be used by	*//* Byte-Program, Sector-Erase, Block-Erase, Chip-Erase).		*//*									*//* Input:								*//*		None							*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Wait_Busy(){	while (Read_Status_Register() == 0x03)	/* waste time until not busy */		Read_Status_Register();}/************************************************************************//* PROCEDURE: Wait_Busy_AAI						*//*									*//* This procedure waits until device is no longer busy for AAI mode.	*//*									*//* Input:								*//*		None							*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Wait_Busy_AAI(){	while (Read_Status_Register() == 0x43)	/* waste time until not busy */		Read_Status_Register();}/************************************************************************//* PROCEDURE: WREN_Check						*//*									*//* This procedure checks to see if WEL bit set before program/erase.	*//*									*//* Input:								*//*		None							*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void WREN_Check(){	unsigned char byte;	byte = Read_Status_Register();	/* read the status register */	if (byte != 0x02)		/* verify that WEL bit is set */	{		while(1)			/* add source code or statements for this file */			/* to compile   			       */			/* i.e. option: insert a display to view error on LED? */		 	/* option: insert a display to view error on LED? */	}}/************************************************************************//* PROCEDURE: WREN_AAI_Check						*//*									*//* This procedure checks for AAI and WEL bit once in AAI mode.		*//*									*//* Input:								*//*		None							*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void WREN_AAI_Check(){	unsigned char byte;	byte = Read_Status_Register();	/* read the status register */	if (byte != 0x42)		/* verify that AAI and WEL bit is set */	{		while(1)					/* add source code or statements for this file */			/* to compile   			       */			/* i.e. option: insert a display to view error on LED? */		    	/* option: insert a display to view error on LED? */	}}/************************************************************************//* PROCEDURE: Verify							*//*									*//* This procedure checks to see if the correct byte has be read.	*//*									*//* Input:								*//*		byte:		byte read				*//*		cor_byte:	correct_byte that should be read	*//*									*//* Returns:								*//*		Nothing							*//************************************************************************/void Verify(unsigned char byte, unsigned char cor_byte){	if (byte != cor_byte)	{		while(1)			/* add source code or statement for this file */			/* to compile   			       */			/* i.e. option: insert a display to view error on LED? */						/* option: insert a display to view error on LED? */	}}int main(){return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产东北露脸精品视频| 一本色道综合亚洲| 欧美日韩在线一区二区| 中文字幕欧美区| 国产在线一区二区| 色欧美片视频在线观看| 亚洲影院理伦片| 99久久精品免费| 日韩三级视频在线观看| 婷婷综合久久一区二区三区| 欧美日韩久久久久久| 亚洲电影一区二区三区| 国产精品视频你懂的| 国产a区久久久| 国产精品人妖ts系列视频| 国产乱子伦视频一区二区三区 | 青青草原综合久久大伊人精品| 欧美日韩一区二区三区视频| 亚洲国产精品天堂| 日韩午夜激情免费电影| 高清成人免费视频| 五月天婷婷综合| 国产精品久久久久久久久免费丝袜| 91久久线看在观草草青青| 美女mm1313爽爽久久久蜜臀| 成人欧美一区二区三区| 日韩一区二区三区高清免费看看| 波多野结衣中文字幕一区二区三区 | 亚洲桃色在线一区| 精品福利在线导航| 欧美自拍偷拍午夜视频| 国产一区二区三区精品欧美日韩一区二区三区 | 久久国产欧美日韩精品| 一区二区三区在线视频免费 | 亚洲精品视频在线| 中文字幕一区二| 久久精品一区二区三区不卡 | 亚洲mv大片欧洲mv大片精品| 中文字幕一区在线观看视频| 精品奇米国产一区二区三区| 欧美美女一区二区三区| 欧美日韩午夜精品| 久久久久88色偷偷免费| 91精品国产一区二区人妖| 欧美性受极品xxxx喷水| 欧美日韩国产综合视频在线观看| 色婷婷av一区二区三区大白胸| 91丨九色porny丨蝌蚪| av爱爱亚洲一区| 91原创在线视频| 欧美视频中文字幕| 在线免费不卡电影| 日韩一区二区免费高清| 欧美mv和日韩mv国产网站| 日韩精品一区二区三区四区| 4438亚洲最大| 2024国产精品| 亚洲国产成人一区二区三区| 亚洲欧洲av一区二区三区久久| 亚洲另类一区二区| 另类调教123区| 成人免费视频网站在线观看| 精品国产亚洲在线| 国产精品视频一区二区三区不卡| 国产精品传媒视频| 日韩一区精品字幕| 国产99久久精品| 欧美三级欧美一级| 久久综合九色综合欧美98| 亚洲老妇xxxxxx| 国产黑丝在线一区二区三区| 91麻豆123| 中文字幕av免费专区久久| 午夜伊人狠狠久久| 成人中文字幕合集| 欧美一区二区三区在线电影 | 欧洲日韩一区二区三区| 久久蜜臀中文字幕| 日韩高清在线一区| 一本到不卡免费一区二区| 久久一日本道色综合| 日本在线不卡视频一二三区| 在线中文字幕一区二区| 国产精品久久看| 狠狠色综合日日| 精品粉嫩超白一线天av| 青青草91视频| 在线成人高清不卡| 亚洲午夜精品17c| 日本高清不卡一区| 亚洲成精国产精品女| 欧美在线视频你懂得| 亚洲日本成人在线观看| 色婷婷综合久色| 亚洲一二三四区| 国产福利一区在线观看| 国产精品1区2区3区在线观看| 亚洲图片激情小说| 激情五月婷婷综合| 国产日韩欧美精品一区| 日本伊人色综合网| 91在线精品一区二区| 成人免费视频网站在线观看| 久久99深爱久久99精品| 国产一区二区三区免费| 另类人妖一区二区av| 91精品国产麻豆| 99re66热这里只有精品3直播| 玖玖九九国产精品| 视频一区二区国产| 亚洲色图20p| 国产精品久久久99| 久久久久久免费毛片精品| 日韩三级视频中文字幕| 欧美乱妇20p| 欧美日韩国产一级| 91丨九色丨国产丨porny| 国产**成人网毛片九色 | 国产在线一区二区| 日韩精品1区2区3区| 亚洲第一福利一区| 日本午夜精品一区二区三区电影| 亚洲成人久久影院| 日韩成人一级大片| 免费av网站大全久久| 韩国v欧美v日本v亚洲v| 亚洲永久免费av| 亚洲视频1区2区| 国产亚洲精品aa午夜观看| 91麻豆精品国产综合久久久久久 | 国产欧美一二三区| 欧美一卡二卡在线观看| 欧美日韩视频一区二区| 色综合久久66| kk眼镜猥琐国模调教系列一区二区 | 91麻豆swag| www.亚洲在线| 成人免费毛片aaaaa**| 久久疯狂做爰流白浆xx| 亚洲超碰精品一区二区| 亚洲动漫第一页| 青娱乐精品在线视频| 免费观看一级特黄欧美大片| 一卡二卡三卡日韩欧美| 一区二区成人在线| 亚洲午夜激情网页| 午夜精品影院在线观看| 日韩va欧美va亚洲va久久| 青娱乐精品在线视频| 久久99精品国产麻豆不卡| 国产一区二区三区综合| 国产成人h网站| 色婷婷一区二区三区四区| 欧美视频一二三区| 日韩免费成人网| 中文字幕亚洲视频| 午夜欧美在线一二页| 极品少妇一区二区三区精品视频 | 欧美综合天天夜夜久久| 欧美一级日韩不卡播放免费| 久久无码av三级| 一区二区三区在线高清| 蜜芽一区二区三区| 色综合天天在线| 日韩限制级电影在线观看| 国产精品免费观看视频| 日韩一区精品视频| 菠萝蜜视频在线观看一区| 欧美肥妇free| 亚洲同性gay激情无套| 国内精品视频一区二区三区八戒| 91美女在线观看| 欧美激情一区二区三区蜜桃视频 | 不卡电影免费在线播放一区| 91精品一区二区三区久久久久久 | 日本一区二区在线不卡| 秋霞午夜鲁丝一区二区老狼| 99国产精品久久久久久久久久久| 国产日韩欧美激情| 亚欧色一区w666天堂| 91免费观看视频| 国产亲近乱来精品视频| 久久99国产乱子伦精品免费| 日韩女优制服丝袜电影| 日日噜噜夜夜狠狠视频欧美人 | 国产精品剧情在线亚洲| av电影一区二区| 亚洲美女一区二区三区| 91视频在线观看| 午夜不卡av在线| 精品国产91久久久久久久妲己| 激情综合五月天| 国产精品久久一级| 一本大道av一区二区在线播放| 亚洲va欧美va天堂v国产综合| 欧美一区午夜视频在线观看| 国产一区二区美女| 国产精品理伦片| 欧美一区二区三区在| 国产一区二区毛片|