freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

深入理解sd卡基礎(chǔ)原理以及內(nèi)部結(jié)構(gòu)的總結(jié)-資料下載頁

2025-08-04 17:45本頁面
  

【正文】 0。 return(TRUE)。 //返回成功}//**************************************************************************//查找數(shù)據(jù)開始標(biāo)志(預(yù)設(shè)DATASTART)根據(jù)實(shí)際需要?jiǎng)h改//**************************************************************************unsigned long SD_find(void) { unsigned long tmp=400。 unsigned char data[512]。 do { SD_read_sector(tmp,data)。 //從0扇區(qū)開始查找 tmp++。 //查找DATASTART }while(!((data[0]==39。D39。)amp。amp。(data[1]==39。A39。)amp。amp。(data[2]==39。T39。)amp。amp。(data[3]==39。A39。)amp。amp。(data[4]==39。S39。)amp。amp。(data[5]==39。T39。)amp。amp。(data[6]==39。A39。)amp。amp。(data[7]==39。R39。)amp。amp。(data[8]==39。T39。)))。 return tmp。 //返回開始標(biāo)志的下一個(gè)扇區(qū)} //**************************************************************************//發(fā)送一個(gè)字節(jié)//**************************************************************************unsigned char SPI_TransferByte(unsigned char byte){SPDR = byte。while (!(SPSR amp。 0x80))。 //檢測(cè)線路是否空閑 return SPDR。}//**************************************************************************//主程序例子//**************************************************************************void main(void){ unsigned long temp。unsigned char data[512]。unsigned char data2[512]={39。sssssssssssssssssssssssss39。}。unsigned char m1[]={39。\r\nhello world\r\n39。}。unsigned char m2[]={39。\r\nSD_INIT OK\r\n39。}。uart0_init()。 SD_Port_Init()。 //端口初始化if(SD_Init()== 0x01){ //SD卡初始化,并讀取返回值putstr(m2)。}temp=SD_find()。 //查找DATASTART數(shù)據(jù)開始標(biāo)志,返回下一扇區(qū)地址SD_read_sector(1001,data)。 //讀取temp地址的512字節(jié)數(shù)據(jù),512字節(jié)數(shù)據(jù)存入data數(shù)組putstr(data)。 SD_write_sector(temp,data2)。 //將data2數(shù)組512字節(jié)數(shù)據(jù)寫入temp扇區(qū)}測(cè)試程序很簡(jiǎn)單,僅僅是做了一下讀寫SD卡的測(cè)試。關(guān)于SD卡的幾點(diǎn)注意事項(xiàng)。無論我們?cè)敢獠辉敢?,SD卡每次讀寫數(shù)據(jù)的最小單位是1個(gè)扇區(qū),即512個(gè)字節(jié)。SD卡與單片機(jī)連接的SPI總線不能太長(zhǎng),要盡量短。這樣的好處是速度可以更快,也不容易出錯(cuò)。雖然我們并不關(guān)心FAT文件表,但是我們?nèi)匀灰P(guān)心SD卡的存儲(chǔ)結(jié)構(gòu),如果我們不想使用PC機(jī)來讀取保存在SD卡上的數(shù)據(jù)那我們就不用關(guān)心SD存儲(chǔ)結(jié)構(gòu)了。但,作為一個(gè)大容量的可移動(dòng)存儲(chǔ)設(shè)備,不能用PC機(jī)來讀取是個(gè)很大的遺憾,我解決這個(gè)遺憾的方法如下:3因?yàn)槲也涣私釬AT復(fù)雜的結(jié)構(gòu),所以我做的程序沒法去按照FAT表的各項(xiàng)功能來進(jìn)行創(chuàng)建文件、刪除文件、創(chuàng)建目錄等等操作。3雖然我們的單片機(jī)不能創(chuàng)建文件,但是PC機(jī)是可以創(chuàng)建文件的?。∷晕沂褂肞C機(jī)將SD卡格式化,之后在SD卡上創(chuàng)建一個(gè)大文件,比如我的128M的SD卡上我建立了一個(gè)100M的文件。這里需要注意一下,一般使用windows創(chuàng)建文件的功能時(shí)是沒有辦法指定創(chuàng)建文件的大小的,空文件就是0個(gè)字節(jié)的長(zhǎng)度,而我們是需要一個(gè)固定長(zhǎng)度的文件的,所以我用VC編寫了一個(gè)小軟件,這個(gè)軟件可以為我創(chuàng)建一個(gè)100M長(zhǎng)度的空文件,記住,這點(diǎn)很重要:一個(gè)固定長(zhǎng)度的空文件3雖然我們建立了個(gè)文件在SD卡上,可是我們因?yàn)椴蝗チ私釬AT表,所以我們一樣不知道這個(gè)文件到底位于SD卡的什么地方,不要以為它會(huì)在0字節(jié)的地方開始,為了找到這個(gè)文件的開始位置,我們可以在建立的那個(gè)空文件的開頭寫上幾個(gè)字符,比如我程序里面寫的“DATASTART”,接下來我們要做的就是一個(gè)扇區(qū)一個(gè)扇區(qū)的去找這個(gè)幾個(gè)特殊的字符,這是個(gè)笨方法,但卻是最簡(jiǎn)單直觀的方法。這個(gè)方法有兩個(gè)缺點(diǎn):a、如果文件建立在整個(gè)SD卡的后面,那找到這個(gè)文件需要漫長(zhǎng)的等待。b、如果碰巧某個(gè)文件里面也有我們定義的那個(gè)特殊字符串的話,那就亂套了!不過好在我們使用的SD卡一般都是專用的,并不能拿去做其他應(yīng)用,比如從公司copy點(diǎn)文件回家之類的,那就能保證這個(gè)SD卡上文件的簡(jiǎn)單性,即只有我們需要的那個(gè)文件,其他文件并不存在,而且這個(gè)文件肯定會(huì)從SD卡開始的那些扇區(qū)中的某一個(gè)開始。這樣說來的話找到這個(gè)字符串也不是那么慢嘛!^_^。不過這里要建議一下,在使用SD卡之前最好用windows將它完全格式話一下。3一旦我們找到了我們要寫入文件的起始位置(它一般表示為一個(gè)扇區(qū)號(hào)),那我們就可以在這個(gè)起始扇區(qū)的下一個(gè)扇區(qū)寫入數(shù)據(jù)了。OK,看起來很簡(jiǎn)單!有了這種存儲(chǔ)方式我們還需要IIC接口的EEPROM干嗎呢?^_^,說句玩笑而已!
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1