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

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

?? main.c

?? 單片機(jī)讀寫U盤方案開發(fā)指南
?? C
字號(hào):
#include <iom8v.h>
#include <macros.h>

#define PB375_VER				0x30	/* 當(dāng)前模塊版本 */

/* ********************************************************************************************************************* */
/* 返回的操作狀態(tài)碼 */
/* 以下是事件通知狀態(tài)碼,檢測(cè)到當(dāng)前U盤已經(jīng)連接或者已經(jīng)斷開,可以作為最終狀態(tài)碼 */
#define	ERR_USB_CONNECT			0x15	/* 檢測(cè)到USB設(shè)備連接事件,磁盤已經(jīng)連接 */
#define ERR_DISK_DISCON			0x82	/* 檢測(cè)到USB設(shè)備連接事件,磁盤已經(jīng)斷開,或者磁盤尚未連接 */
/* 代碼0XH用于USB設(shè)備方式的操作狀態(tài)代碼,由PB375返回,是USB設(shè)備模式的中斷狀態(tài) */
#define	ERR_USB_DAT_DOWN		0x02	/* USB設(shè)備模式: 數(shù)據(jù)下傳成功,上位機(jī)下傳的數(shù)據(jù)已經(jīng)在模塊中 */
#define	ERR_USB_DAT_UP			0x0A	/* USB設(shè)備模式: 數(shù)據(jù)上傳成功,模塊中的上傳數(shù)據(jù)已經(jīng)被上位機(jī)取走 */


/* 最終狀態(tài)碼 */
#define ERR_SUCCESS				0x00	/* 操作成功 */
#define ERR_PB375_ERROR			0x81	/* PB375硬件錯(cuò)誤,可能需要復(fù)位PB375 */
#define ERR_STATUS_ERR			0x83	/* 磁盤狀態(tài)錯(cuò)誤,可能正在連接或者斷開磁盤 */
#define ERR_MBR_ERROR			0x91	/* 磁盤的主引導(dǎo)記錄無(wú)效,可能磁盤尚未分區(qū)或者尚未格式化 */
#define ERR_TYPE_ERROR			0x92	/* 磁盤分區(qū)類型不支持,只支持FAT12/FAT16/BigDOS/FAT32,需要由磁盤管理工具重新分區(qū) */
#define ERR_BPB_ERROR			0xA1	/* 磁盤尚未格式化,或者參數(shù)錯(cuò)誤,需要由WINDOWS采用默認(rèn)參數(shù)重新格式化 */
#define ERR_TOO_LARGE			0xA2	/* 磁盤非正常格式化并且容量大于4GB,或者容量大于250GB,需要由WINDOWS采用默認(rèn)參數(shù)重新格式化 */
#define ERR_FAT_ERROR			0xA3	/* 磁盤的文件系統(tǒng)不支持,只支持FAT12/FAT16/FAT32,需要由WINDOWS采用默認(rèn)參數(shù)重新格式化 */
#define ERR_DISK_FULL			0xB1	/* 磁盤文件太滿,剩余空間太少或者已經(jīng)沒有,需要磁盤整理 */
#define ERR_FDT_OVER			0xB2	/* 目錄內(nèi)文件太多,沒有空閑的目錄項(xiàng),FAT12/FAT16根目錄下的文件數(shù)應(yīng)該少于500個(gè),需要磁盤整理 */
#define ERR_MISS_DIR			0xB3	/* 指定路徑的某個(gè)子目錄沒有找到,可能是目錄名稱錯(cuò)誤 */
#define ERR_FILE_CLOSE			0xB4	/* 文件已經(jīng)關(guān)閉,如果需要使用,應(yīng)該重新打開文件 */
#define ERR_OPEN_DIR			0x41	/* 指定路徑的目錄被打開 */
#define ERR_MISS_FILE			0x42	/* 指定路徑的文件沒有找到,可能是文件名稱錯(cuò)誤 */
#define ERR_FOUND_NAME			0x43	/* 搜索到與通配符相匹配的文件名,文件名及其完整路徑在命令緩沖區(qū)中,如果需要使用,應(yīng)該打開該文件 */
#define	ERR_USB_DISK_ERR		0x1F	/* USB存儲(chǔ)器操作失敗,在初始化時(shí)可能是USB存儲(chǔ)器不支持,在讀寫操作中可能是磁盤損壞或者已經(jīng)斷開 */
/* 其余錯(cuò)誤代碼未定義,可以發(fā)出命令CMD_QueryStatus查詢模塊狀態(tài)并分析 */

/* ********************************************************************************************************************* */
/* 磁盤及文件狀態(tài),適用于CMD_PARAM.Status.mDiskStatus */
#define DISK_UNKNOWN			0x00	/* 尚未初始化,未知狀態(tài) */
#define DISK_DISCONNECT			0x01	/* 磁盤沒有連接或者已經(jīng)斷開 */
#define DISK_CONNECT			0x02	/* 磁盤已經(jīng)連接,但是尚未初始化或者無(wú)法識(shí)別該磁盤 */
#define DISK_MOUNTED			0x03	/* 磁盤已經(jīng)初始化成功,但是尚未分析文件系統(tǒng)或者文件系統(tǒng)不支持 */
#define DISK_READY				0x10	/* 已經(jīng)分析磁盤的文件系統(tǒng)并且能夠支持 */
#define DISK_OPEN_ROOT			0x12	/* 已經(jīng)打開根目錄,扇區(qū)模式,只能以扇區(qū)為單位讀寫目錄的內(nèi)容,使用后必須關(guān)閉,注意FAT12/FAT16根目錄是固定長(zhǎng)度 */
#define DISK_OPEN_DIR			0x13	/* 已經(jīng)打開子目錄,扇區(qū)模式,只能以扇區(qū)為單位讀寫目錄的內(nèi)容 */
#define DISK_OPEN_FILE			0x14	/* 已經(jīng)打開文件,扇區(qū)模式,可以以扇區(qū)為單位進(jìn)行數(shù)據(jù)讀寫 */
#define DISK_OPEN_FILE_B		0x15	/* 已經(jīng)打開文件,字節(jié)模式,可以以字節(jié)為單位進(jìn)行數(shù)據(jù)讀寫 */


/* 外部命令碼 */
#define	CMD_DiskQuery			0x61	/* 查詢磁盤信息 */
#define	CMD_FileOpen			0x64	/* 打開文件 */
#define	CMD_FileCreate			0x65	/* 新建文件并打開,如果文件已經(jīng)存在則先刪除后再新建 */
#define	CMD_FileErase			0x66	/* 刪除文件并關(guān)閉 */
#define	CMD_FileClose			0x67	/* 關(guān)閉當(dāng)前文件 */
#define	CMD_ByteLocate			0x7A	/* 以字節(jié)為單位移動(dòng)當(dāng)前文件指針 */
#define	CMD_ByteRead			0x7B	/* 以字節(jié)為單位從當(dāng)前文件讀取數(shù)據(jù)塊 */
#define	CMD_ByteWrite			0x7C	/* 以字節(jié)為單位向當(dāng)前文件寫入數(shù)據(jù)塊 */
#define	CMD_DiskReady			0x71	/* 查詢磁盤是否準(zhǔn)備好 */
#define CMD_RESET               0x7D    /*復(fù)位*/                


/*
  CS------PC0
  SCK-----PC1
  SDI-----PC3
  SDO-----PC2
*/

#define  PB375_CS_SET     PORTC |=  (1<<PC0)
#define  PB375_CS_CLR     PORTC &= ~ (1<<PC0)
#define  PB375_SCK_SET    PORTC |= (1<<PC1)
#define  PB375_SCK_CLR    PORTC &= ~(1<<PC1)
#define  PB375_SDI_SET    PORTC |= (1<<PC2)
#define  PB375_SDI_CLR    PORTC &= ~(1<<PC2)
#define  PB375_SDO        (PINC &(1<<PC3))

#define  MAXBUFLEN   128

//發(fā)送緩沖區(qū)
unsigned char sendBuff[MAXBUFLEN];
//接收緩沖區(qū)
unsigned char recBuff[MAXBUFLEN];



//初始化IO口  設(shè)置CS  SCK  SDI 為輸出   SDO為輸入
void initPort()
{
   PORTC |= 0x07;
   DDRC  |= 0x07;
   DDRC  &= 0xF7;
}


/* 以毫秒為單位延時(shí),適用于24MHz時(shí)鐘 */
void	mDelaymS( unsigned char delay )
{
	unsigned char	i, j, c;
	for ( i = delay; i != 0; i -- ) 
	{
		for ( j = 200; j != 0; j -- ) c += 3;  /* 在24MHz時(shí)鐘下延時(shí)500uS */
		for ( j = 200; j != 0; j -- ) c += 3;  /* 在24MHz時(shí)鐘下延時(shí)500uS */
	}
}


/* 發(fā)送一個(gè)字節(jié)數(shù)據(jù)給PB375模塊,同時(shí)接收一個(gè)字節(jié),以SPI模式0方式(SPI_SCK默認(rèn)為0) */
unsigned char	mSpiExchange( unsigned char c )
{
	unsigned char	i, d;
	d = 0;
	PB375_SCK_CLR;
	for ( i = 8; i != 0; i -- ) {  /* 8個(gè)位 */
		if ( c & 0x80 ) 
		   PB375_SDI_SET;  /* 向模塊的SDI輸入引腳輸出數(shù)據(jù) */
		else 
		   PB375_SDI_CLR;
		d <<= 1;
		if ( PB375_SDO ) 
		 d++;  /* 如果模塊的SDO輸出引腳為高電平則輸入位1 PB375_SDO */
		mDelaymS(1);                     
		PB375_SCK_SET;  /* SPI時(shí)鐘上升沿,模塊接收數(shù)據(jù)并輸出數(shù)據(jù) */
		c <<= 1;
		mDelaymS(1);                      
		PB375_SCK_CLR;
	}
	return( d );
}



/* 執(zhí)行命令 */
unsigned char	ExecCommand( unsigned char cmd, unsigned char len )
{
	unsigned char		i, j, status;
	PB375_CS_CLR;  /* 產(chǎn)生SPI片選 */
	mSpiExchange( cmd );  /* 寫入命令碼 */
	mSpiExchange( len );  /* 寫入后續(xù)參數(shù)的長(zhǎng)度 */
	if ( len ) {  /* 有參數(shù) */
		for ( i = 0; i != len; i ++ ) mSpiExchange( sendBuff[ i ] );  /* 依次寫入?yún)?shù) */
	}
	PB375_CS_SET;  /* 結(jié)束SPI片選 */
	while ( 1 ) {  /* 處理數(shù)據(jù)傳輸,直到操作完成才退出 */

		PB375_CS_CLR;  /* 產(chǎn)生SPI片選 */
		status = mSpiExchange( 0xFF );  /* 寫入0xFF作為無(wú)效命令碼(不應(yīng)該寫其它值),返回模塊操作狀態(tài) */
		if ( status == 0xFF ) {  /* 模塊操作尚未完成,也就是INT#沒有中斷產(chǎn)生 */
			PB375_CS_SET;  /* 結(jié)束SPI片選 */
			mDelaymS( 1 );
			continue;  /* 繼續(xù)等待模塊完成操作 */
		}

		if ( status == ERR_SUCCESS )  /* 操作成功 */ 
		{  
			i = mSpiExchange( 0 );  /* 返回結(jié)果數(shù)據(jù)的長(zhǎng)度,寫入0沒有意義,可以是任何值 */
			if ( i ) {  /* 有結(jié)果數(shù)據(jù) */
				j = 0;
				do {  /* 使用do+while結(jié)構(gòu)是因?yàn)槠湫矢哂趂or */
					recBuff[ j ] = mSpiExchange( 0 );  /* 接收結(jié)果數(shù)據(jù)并保存到參數(shù)結(jié)構(gòu)中,寫入0沒有意義 */
					j ++;
				} while ( -- i );
			}
			PB375_CS_SET;  /* 結(jié)束SPI片選 */
			break;  /* 操作成功返回 */
		}
		else   /* 操作失敗 */ 
		{  
			PB375_CS_SET;  /* 結(jié)束SPI片選 */
			if ( status == ERR_DISK_DISCON || status == ERR_USB_CONNECT ) mDelaymS( 100 );  /* U盤剛剛連接或者斷開,應(yīng)該延時(shí)幾十毫秒再操作 */
			break;  /* 操作失敗返回 */
		}
		PB375_CS_SET;  /* 結(jié)束SPI片選 */
	}
	return( status );
}




/*
  主程序

*/
void main( ) 
{
	unsigned char	i;
		
	initPort();
	mDelaymS( 500 );  /* 延時(shí)500毫秒,PB375模塊上電后需要500毫秒左右的復(fù)位時(shí)間 */
	for ( i = 0; i < 5; i ++ ) 
	{
		mDelaymS( 100 );
		if ( ExecCommand( CMD_DiskReady, 0 ) == ERR_SUCCESS ) 
			break;  /* 查詢磁盤是否準(zhǔn)備好 */
	}

   
         //寫入數(shù)據(jù)到文件
	     /*
		 sendBuff[0] = 92;
		 sendBuff[1] = 0x52;
		 sendBuff[2] = 0x41;
		 sendBuff[3] = 0x42;
		 sendBuff[4] = 0x43;
		 sendBuff[5] = 0x35;
		 sendBuff[6] = 0x36;
		 sendBuff[7] = 0x4C;
		 sendBuff[8] = 0x2e;
		 sendBuff[9] = 0x54;
		 sendBuff[10] = 0x58;
		 sendBuff[11] = 0x54;
		 sendBuff[12] = 0;
		
		 
		 sendBuff[0] = 92;
		 sendBuff[1] = 0x42;
		 sendBuff[2] = 0x4F;
		 sendBuff[3] = 0x44;
		 sendBuff[4] = 0x59;
		 sendBuff[5] = 0x44;
		 //sendBuff[6] = 0x41;
		 //sendBuff[7] = 0x54;
		 //sendBuff[8] = 0x41;
		 sendBuff[6] = 0x2E;
		 sendBuff[7] = 0x54;
		 sendBuff[8] = 0x58;
		 sendBuff[9] = 0x54;
		 sendBuff[10] = 0;
		 */
		  sendBuff[0] = 92;
	     strcpy(sendBuff+1,"BLUEFIVE.TXT");		     
	     if ( ExecCommand( CMD_FileOpen, 14 ) == ERR_SUCCESS )
	     {
	       //加一個(gè)字節(jié)定位
		   sendBuff[0] = 0x00;
		   sendBuff[1] = 0X00;
		   sendBuff[2] = 0X00;
		   sendBuff[3] = 0X05;
		   
		   if ( ExecCommand( CMD_ByteLocate, 4 ) == ERR_SUCCESS )
		   {
		     sendBuff[0] = 10;//寫入文件字節(jié)大小
		     strcpy(sendBuff+1,"11111111111111111111");
		     if ( ExecCommand( CMD_ByteWrite, 21 ) == ERR_SUCCESS )
		        ExecCommand( CMD_FileClose, 1 );
		   }
		   
	     }
	     else
	     {
	       //操作失敗
	     }
	
	while ( 1 ) 
	{  
	   /* 主循環(huán) */	
	   mDelaymS( 100 );
	}
	
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品视频| 中文字幕免费在线观看视频一区| 日本不卡中文字幕| 久久久久久久久一| 色中色一区二区| 三级亚洲高清视频| 久久精品在线免费观看| 色婷婷综合中文久久一本| 视频一区视频二区中文| 久久在线免费观看| 色婷婷av一区二区三区软件| 亚洲3atv精品一区二区三区| 久久综合av免费| 在线国产亚洲欧美| 黄一区二区三区| 亚洲另类中文字| 精品日韩成人av| 色综合久久综合中文综合网| 免费人成在线不卡| 亚洲私人影院在线观看| 91精品国产免费久久综合| 成人午夜又粗又硬又大| 一区二区三区在线视频免费| 日韩视频一区在线观看| av在线免费不卡| 日韩精品久久理论片| 精品国产精品一区二区夜夜嗨| 不卡的av电影在线观看| 美国十次了思思久久精品导航| 国产精品福利一区| 精品久久久久久最新网址| 色哦色哦哦色天天综合| 国产精品69久久久久水密桃| 亚洲国产成人av网| 国产精品久久久久三级| 精品伦理精品一区| 欧美日韩高清不卡| 99re8在线精品视频免费播放| 久久 天天综合| 性久久久久久久| 久久久久久亚洲综合| 欧美一区二区国产| 欧美日韩精品一区视频| 99精品国产热久久91蜜凸| 韩国三级中文字幕hd久久精品| 亚洲国产一区二区三区| 亚洲少妇30p| 日本一区二区三区四区| 欧美zozozo| 欧美一级日韩免费不卡| 欧美午夜精品久久久久久孕妇| 国产精品12区| 亚洲国产视频直播| 国产精品国产精品国产专区不片| 欧美xxxx老人做受| 日韩一区和二区| 7777精品伊人久久久大香线蕉超级流畅 | 国产在线不卡一卡二卡三卡四卡| 视频一区在线视频| 性做久久久久久免费观看| 一区二区三区免费看视频| 国产精品国产三级国产三级人妇| 久久久久久麻豆| 久久久国产精品麻豆| 精品国产成人系列| 久久这里只有精品视频网| 日韩一区二区免费在线电影| 在线成人小视频| 欧美少妇xxx| 99久久综合色| 99v久久综合狠狠综合久久| 国产精品亚洲一区二区三区妖精 | 欧美大片一区二区三区| 欧美一区二区福利在线| 日韩三级在线免费观看| 日韩视频在线一区二区| 精品99999| 国产午夜精品久久| 中文字幕国产一区二区| 国产精品免费视频观看| 亚洲免费在线播放| 亚洲一二三四区不卡| 视频一区中文字幕国产| 久久精品噜噜噜成人88aⅴ | 激情偷乱视频一区二区三区| 国产综合色产在线精品| 粉嫩一区二区三区在线看| 福利91精品一区二区三区| 成人午夜电影网站| 91在线视频网址| 欧美日韩亚洲国产综合| 日韩一二在线观看| 国产人久久人人人人爽| 中文字幕亚洲区| 亚洲高清不卡在线| 老汉av免费一区二区三区| 国产成a人亚洲精| 色婷婷av一区二区| 日韩一区二区中文字幕| 国产日产欧美精品一区二区三区| 亚洲国产成人私人影院tom| 亚洲在线免费播放| 九九视频精品免费| 91在线视频官网| 91精品国产福利| 国产三级欧美三级| 最新国产成人在线观看| 婷婷国产在线综合| 国产福利一区二区三区视频| 97久久超碰国产精品电影| 欧美高清www午色夜在线视频| 亚洲精品一区二区三区在线观看| 国产精品嫩草久久久久| 亚洲国产精品人人做人人爽| 国产一区二区三区黄视频 | 成人激情午夜影院| 91麻豆精品国产91久久久久久久久 | 亚洲一区二区精品视频| 久久av资源网| 色成人在线视频| 久久久www成人免费毛片麻豆 | 99久久精品国产毛片| 6080yy午夜一二三区久久| 欧美高清在线精品一区| 日韩激情av在线| 91视频xxxx| 国产丝袜美腿一区二区三区| 亚洲国产精品久久人人爱蜜臀| 国产凹凸在线观看一区二区| 欧美精品乱人伦久久久久久| 亚洲国产精品黑人久久久| 日韩精品乱码免费| 不卡电影免费在线播放一区| 7777精品伊人久久久大香线蕉经典版下载 | 天天免费综合色| 91在线视频18| 久久久久久久综合狠狠综合| 午夜视频一区二区| 成人综合婷婷国产精品久久| 日韩欧美二区三区| 香蕉成人伊视频在线观看| aa级大片欧美| 国产亚洲精品aa| 捆绑紧缚一区二区三区视频| 欧美日韩一区二区在线观看 | 久久久一区二区三区| 五月婷婷激情综合| 一本色道久久综合亚洲精品按摩| 成人免费看视频| 26uuu亚洲婷婷狠狠天堂| 国模套图日韩精品一区二区| 久久色在线视频| 国产成人精品免费在线| 国产精品视频一二三区| 成人做爰69片免费看网站| 中文字幕五月欧美| 91黄色免费版| 视频一区欧美精品| 欧美一区二区三区在线看| 久久99精品网久久| 国产日韩在线不卡| 99视频超级精品| 亚洲国产另类av| 精品久久久久久亚洲综合网 | 91蝌蚪国产九色| 亚洲va欧美va国产va天堂影院| 日韩一区二区电影| 国产91在线观看丝袜| 亚洲欧美激情小说另类| 欧美理论片在线| 国产一区二区福利| 亚洲同性gay激情无套| 欧美三级电影在线看| 久久精品久久久精品美女| 国产三级欧美三级| 欧美性大战久久久久久久蜜臀| 日本色综合中文字幕| 国产午夜久久久久| 欧美日韩一区精品| 国产精品一品视频| 一区二区三区中文免费| 日韩午夜在线观看| bt欧美亚洲午夜电影天堂| 午夜精品一区在线观看| 久久亚洲影视婷婷| 在线视频一区二区三区| 麻豆成人久久精品二区三区红| 中文字幕av免费专区久久| 欧美亚洲综合在线| 国产麻豆欧美日韩一区| 一区二区三区美女| 久久久久国产精品免费免费搜索| 一本大道久久a久久精二百| 免费欧美高清视频| 亚洲女爱视频在线| 欧美精品一区二区蜜臀亚洲| 91视频国产资源| 国产精品夜夜嗨| 日韩高清在线电影| 亚洲日本va在线观看|