請教關(guān)于CH376打開文件的問題

網(wǎng)上買的評估板 根據(jù)數(shù)據(jù)手冊

初始化376 然后選擇了模式 3 用于讀取sd卡

然后執(zhí)行了 DISK_MOUNT

都沒問題 返回 14H 燈也亮了

測試讀取廠商信息命令 27H 也給我返回了廠商信息 測試sd卡容量 3E 命令 返回如下 04 00 60 3D (1G的卡 )

然后我提交文件名為 0 或者 /\0 測試打開文件 總是返回1F xWriteCH376Cmd( 0x2f ); //376操作命令 設(shè)置文件名 Spi376OutByte(0x0); //0 初始化文件系統(tǒng) 或者 '/\0' 打開根目錄 xEndCH376Cmd(); delayms(200);

xWriteCH376Cmd( 0x32 ); //376操作命令 打開文件 //獲取中斷狀態(tài)以判斷是否成功打開 xEndCH376Cmd( ); delayms(500);

xWriteCH376Cmd(0x22); send_232(Spi376InByte()); //此處得到的是 1F xEndCH376Cmd( );

怎么都得不到14 就是不能正確打開 換另一張SD卡也不行 請指點(diǎn)?。?!

補(bǔ)充 : 如果我想打開sd卡上的文件 1.TXT (卡上有且只有1個文件 卡用讀卡器格式過(fat)然后新建了1.TXT 里面內(nèi)容是1234567) 返回還是1FH

...如上 已初始化 設(shè)置模式03H 以及 mount命令 返回14 并測試了讀取容量和廠商信息 然后執(zhí)行如下程序

//設(shè)置文件名

xWriteCH376Cmd( 0x2f ); //376操作命令 設(shè)置文件名 //把文件名送進(jìn)入

Spi376OutByte('\\');

Spi376OutByte('1'); Spi376OutByte('.'); Spi376OutByte('T'); Spi376OutByte('X'); Spi376OutByte('T'); Spi376OutByte(0x0); //打開文件 xEndCH376Cmd( ); delayms(200);

xWriteCH376Cmd( 0x32 ); //376操作命令 打開文件 delayms(500);

//獲取中斷狀態(tài)以判斷是否成功打開 xEndCH376Cmd( );

xWriteCH376Cmd(0x22);

send_232(Spi376InByte()); //<<===返回0x1F xEndCH376Cmd( ); while(1);


付完整的main 測試程序 以及輸出數(shù)據(jù)

void main() { unsigned char x; delayms(500); init_232(); //初始化串口 delayms(500);

//測試任務(wù)1 獲取版本號

P0=0;

CH376_PORT_INIT(); //初始化spi

delayms(1);

//設(shè)置376工作方式 xWriteCH376Cmd(0x15); Spi376OutByte(0x03); delayms(1); send_232(Spi376InByte()); // 《《==此處輸出51 51=成功 xEndCH376Cmd( );

//設(shè)置376的中斷工作方式

xWriteCH376Cmd(0x0B); Spi376OutByte(0x16); Spi376OutByte(0x10); xEndCH376Cmd( );

// xWriteCH376Cmd(0x06); //06H 測試命令 檢查硬件測試 如成功 輸入輸入數(shù)據(jù)取反 AA 輸出 55 Spi376OutByte(0xaa); send_232(Spi376InByte()); 《《==此處輸出55 xEndCH376Cmd( );

//初始化sd卡

xWriteCH376Cmd(0x31); xEndCH376Cmd( ); delayms(800); //需要足夠的延時 300+

xWriteCH376Cmd(0x22); //取中斷狀態(tài) 82=sd卡未連接 14=連接成功 其他等于不成功

x=Spi376InByte();

xEndCH376Cmd( );

send_232(x); 《《==此處返回14

//讀取sd卡識別數(shù)據(jù) 非必需

//xWriteCH376Cmd(0x27); //for (x=0;x<255;x++) //{send_232(Spi376InByte()); } //xEndCH376Cmd( );

//測試磁盤容量 //xWriteCH376Cmd( 0x3e); //xEndCH376Cmd(); //delayms(500);

//xWriteCH376Cmd(0x22); //取中斷狀態(tài) 82=sd卡未連接 14=連接成功 其他等于不成功

//x=Spi376InByte();

//xEndCH376Cmd( );

//send_232(x);

//xWriteCH376Cmd(0x27); //for (x=0;x<255;x++) //{send_232(Spi376InByte()); } //xEndCH376Cmd( );

//04 00 60 3D 《《==測試磁盤返回的數(shù)據(jù)

//xWriteCH376Cmd( 0x2f ); //376操作命令 設(shè)置文件名

//Spi376OutByte(0); //xEndCH376Cmd(); //delayms(200);

//xWriteCH376Cmd( 0x32 ); //376操作命令 打開文件

///獲取中斷狀態(tài)以判斷是否成功打開 //xEndCH376Cmd( ); //delayms(500);

//xWriteCH376Cmd(0x22);

//send_232(Spi376InByte()); 《《==返回0x1f //xEndCH376Cmd( ); //while(1);

//設(shè)置文件名

xWriteCH376Cmd( 0x2f ); //376操作命令 設(shè)置文件名 //把文件名送進(jìn)入

Spi376OutByte('\\');

Spi376OutByte('1'); Spi376OutByte('.'); Spi376OutByte('T'); Spi376OutByte('X'); Spi376OutByte('T'); Spi376OutByte(0x0); //打開文件 xEndCH376Cmd( ); delayms(200);

CH376WriteVar32( 0x64, 0 ); <<==不知道什么意思 例程抄的 有沒有都返回0x1F delayms(500); xWriteCH376Cmd( 0x32 ); //376操作命令 打開文件 delayms(500);

//獲取中斷狀態(tài)以判斷是否成功打開 xEndCH376Cmd( );

xWriteCH376Cmd(0x22);

send_232(Spi376InByte()); // <<==返回0x1f xEndCH376Cmd( ); while(1);

}


例程中有這么長時間的延時嗎? 按照例程仔細(xì)檢查一下程序。另外還有,一定要等中斷產(chǎn)生后再獲取中斷狀態(tài)。


我沒有連接中斷腳 用延遲的方式等待中斷的產(chǎn)生 用示波器檢測也確實(shí)產(chǎn)生了中斷


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

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