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

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

?? file_sys.h

?? 基于CH376的U盤讀寫例子
?? H
字號(hào):
/* CH376芯片 文件系統(tǒng)層 V1.0 */
/* 提供文件系統(tǒng)常用子程序,提供命令打包 */
/* 不使用的子程序可以注釋掉,從而節(jié)約單片機(jī)的程序ROM空間和數(shù)據(jù)RAM空間 */
/* 這里的子程序是通過括號(hào)中的變量傳遞參數(shù),如果參數(shù)較多,為了節(jié)約RAM,也可以參考CH375子程序庫改成通過同一全局變量/聯(lián)合結(jié)構(gòu)CH376_CMD_DATA傳遞 */

/* name 參數(shù)是指短文件名, 可以包括根目錄符, 但不含有路徑分隔符, 總長(zhǎng)度不超過1+8+1+3+1字節(jié) */
/* PathName 參數(shù)是指全路徑的短文件名, 包括根目錄符、多級(jí)子目錄及路徑分隔符、文件名/目錄名 */
/* LongName 參數(shù)是指長(zhǎng)文件名, 以UNICODE小端順序編碼, 以兩個(gè)0字節(jié)結(jié)束, 使用長(zhǎng)文件名子程序必須先定義全局緩沖區(qū)GlobalBuf, 長(zhǎng)度不小于64字節(jié), 可以與其它子程序共用 */

/* 定義 NO_DEFAULT_CH376_INT 用于禁止默認(rèn)的Wait376Interrupt子程序,禁止后,應(yīng)用程序必須自行定義一個(gè)同名子程序 */
/* 定義 DEF_INT_TIMEOUT 用于設(shè)置默認(rèn)的Wait376Interrupt子程序中的等待中斷的超時(shí)時(shí)間/循環(huán)計(jì)數(shù)值, 0則不檢查超時(shí)而一直等待 */
/* 定義 EN_DIR_CREATE 用于提供新建多級(jí)子目錄的子程序,默認(rèn)是不提供 */
/* 定義 EN_DISK_QUERY 用于提供磁盤容量查詢和剩余空間查詢的子程序,默認(rèn)是不提供 */
/* 定義 EN_SECTOR_ACCESS 用于提供以扇區(qū)為單位讀寫文件的子程序,默認(rèn)是不提供 */
/* 定義 EN_LONG_NAME 用于提供支持長(zhǎng)文件名的子程序,默認(rèn)是不提供 */

#ifndef	__CH376_FS_H__
#define __CH376_FS_H__

#include	"HAL.H"

#define	STRUCT_OFFSET( s, m )	( (UINT8)( & ((s *)0) -> m ) )	/* 定義獲取結(jié)構(gòu)成員相對(duì)偏移地址的宏 */

#ifdef	EN_LONG_NAME
#ifndef	LONG_NAME_BUF_LEN
#define	LONG_NAME_BUF_LEN	( LONG_NAME_PER_DIR * 20 )	/* 自行定義的長(zhǎng)文件名緩沖區(qū)長(zhǎng)度,最小值為L(zhǎng)ONG_NAME_PER_DIR*1 */
#endif
#endif


UINT8	CH376ReadBlock( PUINT8 buf );  /* 從當(dāng)前主機(jī)端點(diǎn)的接收緩沖區(qū)讀取數(shù)據(jù)塊,返回長(zhǎng)度 */

UINT8	CH376WriteReqBlock( PUINT8 buf );  /* 向內(nèi)部指定緩沖區(qū)寫入請(qǐng)求的數(shù)據(jù)塊,返回長(zhǎng)度 */

void	CH376WriteHostBlock( PUINT8 buf, UINT8 len );  /* 向USB主機(jī)端點(diǎn)的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊 */

void	CH376WriteOfsBlock( PUINT8 buf, UINT8 ofs, UINT8 len );  /* 向內(nèi)部緩沖區(qū)指定偏移地址寫入數(shù)據(jù)塊 */

void	CH376SetFileName( PUINT8 name );  /* 設(shè)置將要操作的文件的文件名 */

UINT32	CH376Read32bitDat( void );  /* 從CH376芯片讀取32位的數(shù)據(jù)并結(jié)束命令 */

UINT8	CH376ReadVar8( UINT8 var );  /* 讀CH376芯片內(nèi)部的8位變量 */

void	CH376WriteVar8( UINT8 var, UINT8 dat );  /* 寫CH376芯片內(nèi)部的8位變量 */

UINT32	CH376ReadVar32( UINT8 var );  /* 讀CH376芯片內(nèi)部的32位變量 */

void	CH376WriteVar32( UINT8 var, UINT32 dat );  /* 寫CH376芯片內(nèi)部的32位變量 */

void	CH376EndDirInfo( void );  /* 在調(diào)用CH376DirInfoRead獲取FAT_DIR_INFO結(jié)構(gòu)之后應(yīng)該通知CH376結(jié)束 */

UINT32	CH376GetFileSize( void );  /* 讀取當(dāng)前文件長(zhǎng)度 */

UINT8	CH376GetDiskStatus( void );  /* 獲取磁盤和文件系統(tǒng)的工作狀態(tài) */

UINT8	CH376GetIntStatus( void );  /* 獲取中斷狀態(tài)并取消中斷請(qǐng)求 */

#ifndef	NO_DEFAULT_CH376_INT
UINT8	Wait376Interrupt( void );  /* 等待CH376中斷(INT#低電平),返回中斷狀態(tài)碼, 超時(shí)則返回ERR_USB_UNKNOWN */
#endif

UINT8	CH376SendCmdWaitInt( UINT8 mCmd );  /* 發(fā)出命令碼后,等待中斷 */

UINT8	CH376SendCmdDatWaitInt( UINT8 mCmd, UINT8 mDat );  /* 發(fā)出命令碼和一字節(jié)數(shù)據(jù)后,等待中斷 */

UINT8	CH376DiskReqSense( void );  /* 檢查USB存儲(chǔ)器錯(cuò)誤 */

UINT8	CH376DiskConnect( void );  /* 檢查U盤是否連接,不支持SD卡 */

UINT8	CH376DiskMount( void );  /* 初始化磁盤并測(cè)試磁盤是否就緒 */

UINT8	CH376FileOpen( PUINT8 name );  /* 在根目錄或者當(dāng)前目錄下打開文件或者目錄(文件夾) */

UINT8	CH376FileCreate( PUINT8 name );  /* 在根目錄或者當(dāng)前目錄下新建文件,如果文件已經(jīng)存在那么先刪除 */

UINT8	CH376DirCreate( PUINT8 name );  /* 在根目錄下新建目錄(文件夾)并打開,如果目錄已經(jīng)存在那么直接打開 */

UINT8	CH376SeparatePath( PUINT8 path );  /* 從路徑中分離出最后一級(jí)文件名或者目錄(文件夾)名,返回最后一級(jí)文件名或者目錄名的字節(jié)偏移 */

UINT8	CH376FileOpenDir( PUINT8 PathName, UINT8 StopName );  /* 打開多級(jí)目錄下的文件或者目錄的上級(jí)目錄,支持多級(jí)目錄路徑,支持路徑分隔符,路徑長(zhǎng)度不超過255個(gè)字符 */
/* StopName 指向最后一級(jí)文件名或者目錄名 */

UINT8	CH376FileOpenPath( PUINT8 PathName );  /* 打開多級(jí)目錄下的文件或者目錄(文件夾),支持多級(jí)目錄路徑,支持路徑分隔符,路徑長(zhǎng)度不超過255個(gè)字符 */

UINT8	CH376FileCreatePath( PUINT8 PathName );  /* 新建多級(jí)目錄下的文件,支持多級(jí)目錄路徑,支持路徑分隔符,路徑長(zhǎng)度不超過255個(gè)字符 */

#ifdef	EN_DIR_CREATE
UINT8	CH376DirCreatePath( PUINT8 PathName );  /* 新建多級(jí)目錄下的目錄(文件夾)并打開,支持多級(jí)目錄路徑,支持路徑分隔符,路徑長(zhǎng)度不超過255個(gè)字符 */
#endif

UINT8	CH376FileErase( PUINT8 PathName );  /* 刪除文件,如果已經(jīng)打開則直接刪除,否則對(duì)于文件會(huì)先打開再刪除,支持多級(jí)目錄路徑 */

UINT8	CH376FileClose( UINT8 UpdateSz );  /* 關(guān)閉當(dāng)前已經(jīng)打開的文件或者目錄(文件夾) */

UINT8	CH376DirInfoRead( void );  /* 讀取當(dāng)前文件的目錄信息 */

UINT8	CH376DirInfoSave( void );  /* 保存文件的目錄信息 */

UINT8	CH376ByteLocate( UINT32 offset );  /* 以字節(jié)為單位移動(dòng)當(dāng)前文件指針 */

UINT8	CH376ByteRead( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount );  /* 以字節(jié)為單位從當(dāng)前位置讀取數(shù)據(jù)塊 */

UINT8	CH376ByteWrite( PUINT8 buf, UINT16 ReqCount, PUINT16 RealCount );  /* 以字節(jié)為單位向當(dāng)前位置寫入數(shù)據(jù)塊 */

#ifdef	EN_DISK_QUERY

UINT8	CH376DiskCapacity( PUINT32 DiskCap );  /* 查詢磁盤物理容量,扇區(qū)數(shù) */

UINT8	CH376DiskQuery( PUINT32 DiskFre );  /* 查詢磁盤剩余空間信息,扇區(qū)數(shù) */

#endif

UINT8	CH376SecLocate( UINT32 offset );  /* 以扇區(qū)為單位移動(dòng)當(dāng)前文件指針 */

#ifdef	EN_SECTOR_ACCESS

UINT8	CH376DiskReadSec( PUINT8 buf, UINT32 iLbaStart, UINT8 iSectorCount );  /* 從U盤讀取多個(gè)扇區(qū)的數(shù)據(jù)塊到緩沖區(qū),不支持SD卡 */

UINT8	CH376DiskWriteSec( PUINT8 buf, UINT32 iLbaStart, UINT8 iSectorCount );  /* 將緩沖區(qū)中的多個(gè)扇區(qū)的數(shù)據(jù)塊寫入U(xiǎn)盤,不支持SD卡 */

UINT8	CH376SecRead( PUINT8 buf, UINT8 ReqCount, PUINT8 RealCount );  /* 以扇區(qū)為單位從當(dāng)前位置讀取數(shù)據(jù)塊,不支持SD卡 */

UINT8	CH376SecWrite( PUINT8 buf, UINT8 ReqCount, PUINT8 RealCount );  /* 以扇區(qū)為單位在當(dāng)前位置寫入數(shù)據(jù)塊,不支持SD卡 */

#endif

#ifdef	EN_LONG_NAME

UINT8	CH376LongNameWrite( PUINT8 buf, UINT16 ReqCount );  /* 長(zhǎng)文件名專用的字節(jié)寫子程序 */

UINT8	CH376CheckNameSum( PUINT8 DirName );  /* 計(jì)算長(zhǎng)文件名的短文件名檢驗(yàn)和,輸入為無小數(shù)點(diǎn)分隔符的固定11字節(jié)格式 */

UINT8	CH376LocateInUpDir( PUINT8 PathName );  /* 在上級(jí)目錄(文件夾)中移動(dòng)文件指針到當(dāng)前文件目錄信息所在的扇區(qū) */
/* 另外,順便將當(dāng)前文件目錄信息所在的扇區(qū)的前一個(gè)扇區(qū)的LBA地址寫入CH376內(nèi)部VAR_FAT_DIR_LBA變量(為了方便收集長(zhǎng)文件名時(shí)向前搜索,否則要多移動(dòng)一次) */
/* 使用了全局緩沖區(qū)GlobalBuf的前12個(gè)字節(jié) */

UINT8	CH376GetLongName( PUINT8 PathName, PUINT8 LongName );  /* 由短文件名或者目錄(文件夾)名獲得相應(yīng)的長(zhǎng)文件名 */
/* 需要輸入短文件名的完整路徑PathName,需要提供緩沖區(qū)接收長(zhǎng)文件名LongName(以UNICODE小端編碼,以雙0結(jié)束) */
/* 使用了全局緩沖區(qū)GlobalBuf的前34個(gè)字節(jié),sizeof(GlobalBuf)>=sizeof(FAT_DIR_INFO)+2 */

UINT8	CH376CreateLongName( PUINT8 PathName, PUINT8 LongName );  /* 新建具有長(zhǎng)文件名的文件,關(guān)閉文件后返回,LongName輸入路徑必須在RAM中 */
/* 需要輸入短文件名的完整路徑PathName(請(qǐng)事先參考FAT規(guī)范由長(zhǎng)文件名自行產(chǎn)生),需要輸入以UNICODE小端編碼的以雙0結(jié)束的長(zhǎng)文件名LongName */
/* 使用了全局緩沖區(qū)GlobalBuf的前64個(gè)字節(jié),sizeof(GlobalBuf)>=sizeof(FAT_DIR_INFO)*2 */

#endif

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧洲一区高清在线观看| 欧美日韩国产成人在线免费| 久久久久久久久久久久电影| 国产一区三区三区| 久久精品综合网| www.爱久久.com| 一区二区高清在线| 欧美日韩精品免费| 美洲天堂一区二卡三卡四卡视频| 久久人人爽人人爽| 97久久精品人人爽人人爽蜜臀| 亚洲欧美日韩中文字幕一区二区三区| 色婷婷激情综合| 日本美女视频一区二区| 久久综合一区二区| 91色乱码一区二区三区| 亚洲二区在线视频| 欧美精品一区男女天堂| 成人午夜精品在线| 天堂一区二区在线免费观看| 精品国产91洋老外米糕| av中文字幕不卡| 五月综合激情日本mⅴ| 久久久亚洲午夜电影| 99re亚洲国产精品| 免费在线观看日韩欧美| 欧美国产日产图区| 欧美日本视频在线| 成人黄色电影在线| 91在线视频在线| 日韩综合小视频| 国产精品污www在线观看| 在线观看成人免费视频| 狠狠色丁香久久婷婷综合_中| 中文字幕一区二区三区乱码在线| 欧美老肥妇做.爰bbww视频| 成人在线一区二区三区| 日韩黄色免费网站| 国产精品夫妻自拍| 日韩三级.com| 色av综合在线| 国产大陆a不卡| 奇米色一区二区| 亚洲精品国产a| 久久精品无码一区二区三区| 8x8x8国产精品| 91一区一区三区| 国产精品亚洲专一区二区三区| 亚洲国产精品一区二区久久| 国产精品私房写真福利视频| 欧美va日韩va| 在线播放日韩导航| 日本乱码高清不卡字幕| 高清免费成人av| 久久精品噜噜噜成人av农村| 亚洲一区二区视频在线| 中文字幕视频一区| 久久久噜噜噜久久人人看| 宅男噜噜噜66一区二区66| 色婷婷亚洲婷婷| 91色九色蝌蚪| 91一区二区三区在线观看| 国产一区二区在线影院| 久久99精品久久久| 三级在线观看一区二区| 91原创在线视频| 成人性生交大片免费看视频在线 | 久久午夜羞羞影院免费观看| 欧美日本一道本在线视频| 在线中文字幕一区| 91丨九色porny丨蝌蚪| 成人一区二区在线观看| 国产成人综合在线播放| 精品一区二区三区日韩| 视频一区在线视频| 日韩精品一区第一页| 五月天视频一区| 日韩黄色免费电影| 三级不卡在线观看| 日韩精品免费视频人成| 日韩高清不卡一区| 蜜桃视频在线一区| 久久成人久久鬼色| 精品亚洲成av人在线观看| 久久91精品久久久久久秒播| 免费不卡在线观看| 黑人巨大精品欧美一区| 国产乱人伦偷精品视频不卡 | 色哟哟一区二区| 在线视频欧美精品| 欧美日韩亚洲综合一区| 欧美裸体bbwbbwbbw| 日韩一本二本av| 亚洲一卡二卡三卡四卡| 图片区小说区国产精品视频 | 久久99精品久久只有精品| 久久99国产精品麻豆| 国产制服丝袜一区| 成人美女视频在线观看18| 91网上在线视频| 欧美日韩精品电影| 精品国产电影一区二区| 国产精品乱人伦| 一区二区欧美视频| 蜜乳av一区二区| 粉嫩av亚洲一区二区图片| 色呦呦网站一区| 欧美一区二区三区四区视频| 精品国产第一区二区三区观看体验| 国产欧美日韩在线视频| 一区二区三区精品视频| 蜜桃久久久久久| 不卡视频免费播放| 欧美高清视频在线高清观看mv色露露十八| 欧美电影在哪看比较好| 国产欧美综合在线| 亚洲一二三四久久| 国产在线日韩欧美| 色妹子一区二区| 精品国产污污免费网站入口| 亚洲欧美日韩国产手机在线 | 色女孩综合影院| 欧美精品一区男女天堂| 一区二区高清免费观看影视大全| 麻豆国产91在线播放| 91在线云播放| 精品国产乱码91久久久久久网站| 亚洲日本成人在线观看| 精品午夜久久福利影院 | 亚洲福利视频一区| 国产精品456露脸| 欧美精品 日韩| 综合在线观看色| 国产一区日韩二区欧美三区| 欧美少妇xxx| 综合久久久久久久| 国产做a爰片久久毛片| 欧美日韩精品三区| 亚洲欧美日韩中文字幕一区二区三区| 久久 天天综合| 51精品久久久久久久蜜臀| 日本一区二区综合亚洲| 看电视剧不卡顿的网站| 欧美在线你懂得| 亚洲欧美色图小说| 成人免费毛片高清视频| 精品免费国产一区二区三区四区| 亚洲成va人在线观看| 色综合久久中文字幕| 欧美国产日韩在线观看| 国产在线视视频有精品| 欧美一区二区三区免费大片 | 国产精品久久久久久妇女6080| 蜜乳av一区二区| 在线播放一区二区三区| 亚洲国产一区二区三区| 99国产精品一区| 国产精品久久久久久一区二区三区| 久久99精品视频| 日韩欧美综合一区| 日本大胆欧美人术艺术动态| 欧美人xxxx| 图片区小说区国产精品视频| 欧美色图片你懂的| 一区二区三区高清在线| 亚洲精品在线三区| 精彩视频一区二区三区| 精品欧美一区二区久久| 狠狠v欧美v日韩v亚洲ⅴ| 精品久久久久久久久久久久包黑料 | 中文字幕电影一区| 成人黄色一级视频| 亚洲视频在线观看一区| 色偷偷成人一区二区三区91 | 亚洲激情第一区| 欧美艳星brazzers| 亚洲国产综合91精品麻豆| 欧美日韩国产一二三| 日韩福利视频网| 2023国产精品| 成人性生交大合| 亚洲精品成人a在线观看| 欧美性色aⅴ视频一区日韩精品| 亚洲成人动漫在线免费观看| 911国产精品| 韩国成人在线视频| 国产精品色在线| 色综合天天综合在线视频| 亚洲综合999| 欧美一区午夜精品| 国产一区二区三区四区五区入口 | 日韩专区在线视频| 精品国内二区三区| 成人国产精品免费观看动漫| 亚洲精品成人在线| 日韩一卡二卡三卡四卡| 高清久久久久久| 亚洲在线观看免费视频| 欧美va在线播放| 97超碰欧美中文字幕|