求助CH376 從內(nèi)存緩沖區(qū)讀取FAT_DIR_INFO數(shù)據(jù)塊錯(cuò)誤

unsigned char CH376ReadBlock( unsigned char * buf )

{

? ?unsigned char s, l;

? ?xWriteCH376Cmd( CMD01_RD_USB_DATA0 );//0x27

? ?s = l = xReadCH376Data( ); /* 后續(xù)數(shù)據(jù)長(zhǎng)度 */ ?

? ?if ( l )?

? ?{

? ? ? do?

? ? ? {

? ? ? ? ?*buf = xReadCH376Data( );

? ? ? ? ?buf ++;

? ? ? } while ( -- l );

? ?}

? ?xEndCH376Cmd( );

? ?return( s );

}



CH376ReadBlock(GlobalBuf);/* 從內(nèi)存緩沖區(qū)讀取FAT_DIR_INFO數(shù)據(jù)塊,返回長(zhǎng)度總是sizeof(FAT_DIR_INFO) */

CH376EndDirInfo( ); ? ? ? ? ? ?/* 獲取完FAT_DIR_INFO結(jié)構(gòu) */


if ( ( GlobalBuf[11] & ATTR_LONG_NAME_MASK ) != ATTR_LONG_NAME || GlobalBuf[13] != GlobalBuf[32] ) /* 類型錯(cuò)誤或者校驗(yàn)和錯(cuò)誤 */

{ ?

? ?s = ERR_LONG_NAME_ERR; ? ? ? ? ?

? ?//break; ? ?/* 沒(méi)有直接返回是因?yàn)槿绻谴蜷_(kāi)了根目錄那么必須要關(guān)閉后才能返回 */

}


PIC24EP256GU814 十六位單片機(jī)SPI方式調(diào)用CH376ReadBlock(GlobalBuf) 返回GlobalBuf[11] = 0x35,GlobalBuf[13] = 0x00,GlobalBuf[32] = 0x2c,類型錯(cuò)誤或者校驗(yàn)和錯(cuò)誤

GlobalBuf存放的是FAT_DIR_INFO,sizeof(FAT_DIR_INFO)是32個(gè)字節(jié),所以不知道GlobalBuf[32]代表什么?GlobalBuf[13]是長(zhǎng)文件目錄項(xiàng)的校驗(yàn)和位,指令CMD_DIR_INFO_READ是獲取長(zhǎng)文件名對(duì)應(yīng)短文件名的目錄項(xiàng),并且校驗(yàn)和是通過(guò)復(fù)雜的公式計(jì)算出來(lái)的,還是說(shuō)你的GlobalBuf[32]變量就是你根據(jù)短文件名計(jì)算得到的校驗(yàn)和?

RTX截圖未命名.png


謝謝大神的回復(fù),由于單片機(jī)現(xiàn)在用的是16位單片機(jī),所以GlobalBuf中數(shù)據(jù)不是像8位單片機(jī)一樣,全是8位的數(shù)據(jù),而是16位的,所以原來(lái)8位單片機(jī)中GlobalBuf[11]就該是現(xiàn)在GlobalBuf[5]的高8位,GlobalBuf[13]就該是現(xiàn)在GlobalBuf[6]的高8位


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频