ch376s的版本號(hào)是多少,這個(gè)宏用定義嗎DEF_IC_V43_U。 FILE_SYS.C中這樣說“DEF_IC_V43_U”, /* 定義 DEF_IC_V43_U 用于去掉支持低版本的程序代碼,僅支持V4.3及以上版本的CH376芯片,默認(rèn)是支持低版本 */ 那我現(xiàn)在用的ch376s,它的版本是哪個(gè),用定義這個(gè)宏嗎,
只要從我司買的CH376芯片應(yīng)該都是V4.3以上的版本。前2個(gè)版本已經(jīng)停產(chǎn)。
嗯,謝謝,也就是說如下的程序,我都應(yīng)該屏蔽掉,這些是不用的,對(duì)吧, #ifndef DEF_IC_V43_U UINT8 s; xWriteCH376Cmd( CMD01_GET_IC_VER ); if ( xReadCH376Data( ) < 0x43 ) { if ( CH376ReadVar8( VAR_DISK_STATUS ) < DEF_DISK_READY ) { xWriteCH376Cmd( CMD10_SET_FILE_NAME ); ////初始化文件系統(tǒng)。 xWriteCH376Data( 0 ); s = CH376SendCmdWaitInt( CMD0H_FILE_OPEN ); if ( s == USB_INT_SUCCESS ) { s = CH376ReadVar8( 0xCF ); // if ( s ) { CH376WriteVar32( 0x4C, CH376ReadVar32( 0x4C ) + ( (UINT16)s << 8 ) ); CH376WriteVar32( 0x50, CH376ReadVar32( 0x50 ) + ( (UINT16)s << 8 ) ); CH376WriteVar32( 0x70, 0 ); } } } } #endif
還有我用老示波器看到設(shè)置模式指令(CMD11_SET_USB_MODE)+(06)時(shí),返回一兩個(gè)數(shù)據(jù),一個(gè)是0X51,一個(gè)是0X15,請(qǐng)問這是怎么回事,按數(shù)據(jù)手冊(cè)上應(yīng)該是回復(fù)一個(gè)字節(jié)數(shù)據(jù)?。?X51或0X5H),
上邊寫錯(cuò)了,不是5H,是5F。
狀態(tài)代碼 狀態(tài)名稱 狀態(tài)說明 51H CMD_RET_SUCCESS 操作成功 5FH CMD_RET_ABORT 操作失敗
只返回一字節(jié)數(shù)據(jù),返回兩個(gè)的話是你讀了2次。讀幾次返回幾次,實(shí)際只需讀一次
不是的,我這個(gè)可以仿真,當(dāng)我設(shè)置模式時(shí),發(fā)送(CMD11_SET_USB_MODE)+(06),然后暫停,還沒有讀時(shí),用示波器觀察,會(huì)看到返回兩個(gè)數(shù)據(jù)一個(gè)0X51接著又一個(gè)0X15,請(qǐng)幫我分析下
而且這個(gè)設(shè)置模式操作(CMD11_SET_USB_MODE)+(06),會(huì)引起376的1腳(INT#)變低,好像是要告訴單片機(jī)有中斷了,而數(shù)據(jù)手冊(cè)上,這個(gè)設(shè)置模式的操作不是產(chǎn)生中斷的指令,求指教,
那說明你是插著U盤來設(shè)置模式的,如果插入U(xiǎn)盤設(shè)置模式的話那么就會(huì)產(chǎn)生0X15的中斷狀態(tài)。表示U盤插入。
在設(shè)置模式后加個(gè)while(1)循環(huán);使程序停止在那,看有沒有中斷產(chǎn)生
8樓說的是對(duì)的,確實(shí)是插著U盤時(shí)有中斷,即初始化前就插著U盤,當(dāng)設(shè)置模式后,先返回0X51(同時(shí)376的1腳變低),接著返回一個(gè)0X15,所以我在這里加了一個(gè)中斷查詢,如果有中斷剛把0X15讀出來。 之所以發(fā)現(xiàn)這個(gè)問題是因?yàn)楝F(xiàn)在用的CPU的串口接收緩沖器有4個(gè),如果我不把這時(shí)的0X15讀出來,下次處理讀數(shù)據(jù)時(shí)會(huì)讀到0X15,而這個(gè)0X15是上次的返回值,所以后邊就亂了。對(duì)于STC的單片機(jī)就不會(huì)有這個(gè)問題,因?yàn)樗陀幸粋€(gè)緩沖器,下次再來數(shù)據(jù)時(shí)會(huì)頂?shù)暨@個(gè)0X15,你讀出來的就是本次操作的返回值,后邊的操作也就沒問題了。
樓主用的什么單片機(jī)啊
我開始是用STC單片機(jī)調(diào)試的,按照廠家的例程,基本改動(dòng)不大,調(diào)通了; 接著是把代碼移植到Rabbit Core(不太常見的MCU,可以網(wǎng)上看看)上,可是調(diào)不通,后來只好又單步的查,才發(fā)現(xiàn)是中斷處理部分有問題,主要原因就是這種MCU的串口有很多緩沖器,
能回答一下,是不是買到的CH376可屏蔽上面的代碼呢? 應(yīng)該不行吧?(根目錄下不行?)