在插U盤上電的時(shí)候,初始化每次都能通過(guò),
但是不插U盤初始化的時(shí)候偶爾會(huì)初始化失敗,而且失敗的頻率比成功的頻率高 s = mInitCH376Host( ); StopIfError( s );
(如果成功s的值就是 0x14 失敗時(shí)為0xFA )
這是什么原因?
在插U盤上電的時(shí)候,初始化每次都能通過(guò),
但是不插U盤初始化的時(shí)候偶爾會(huì)初始化失敗,而且失敗的頻率比成功的頻率高 s = mInitCH376Host( ); StopIfError( s );
(如果成功s的值就是 0x14 失敗時(shí)為0xFA )
這是什么原因?
其他讀寫的功能都能實(shí)現(xiàn)了 就是一直存在這個(gè)問(wèn)題
測(cè)試命令是否通過(guò)了? 這個(gè)現(xiàn)象可以這樣解釋。返回0XFA,明顯是中斷超時(shí)了。而你插入U(xiǎn)盤后,就會(huì)產(chǎn)生一個(gè)插入中斷。你把mInitCH376Host( );這個(gè)函數(shù)的源碼貼出來(lái)看看
插著U盤每次都能成功,而不插U盤大多數(shù)都不成功 我想知道插U盤對(duì)CH376的初始化有什么影響。是硬件不夠穩(wěn)定的問(wèn)題嗎?有什么解決方法?
CH376_PORT_INIT( ); xWriteCH376Cmd( CMD11_CHECK_EXIST ); xWriteCH376Data( 0x65 ); res = xReadCH376Data( );//我做過(guò)測(cè)試 ,是因?yàn)闇y(cè)試這個(gè)沒(méi)通過(guò) 返回0所以會(huì)返回0xFA超時(shí)
以下是程序
#define UART_WORK_BAUDRATE 57600
UINT8 mInitCH376Host( void ) { UINT8 res; CH376_PORT_INIT( ); xWriteCH376Cmd( CMD11_CHECK_EXIST ); xWriteCH376Data( 0x65 ); res = xReadCH376Data( );//我做過(guò)測(cè)試 ,是因?yàn)闇y(cè)試這個(gè)沒(méi)通過(guò)返回超時(shí)的 if ( res != 0x9A ) return( ERR_USB_UNKNOWN ); #ifdef UART_WORK_BAUDRATE xWriteCH376Cmd( CMD21_SET_BAUDRATE ); #if UART_WORK_BAUDRATE >= 6000000/256 xWriteCH376Data( 0x03 ); xWriteCH376Data( 256 - 6000000/UART_WORK_BAUDRATE ); #else xWriteCH376Data( 0x02 ); xWriteCH376Data( 256 - 750000/UART_WORK_BAUDRATE ); #endif SET_WORK_BAUDRATE( ); res = xReadCH376Data( ); if ( res != CMD_RET_SUCCESS ) return( ERR_USB_UNKNOWN ); #endif xWriteCH376Cmd( CMD11_SET_USB_MODE ); xWriteCH376Data( 0x06 ); res = xReadCH376Data( );//這個(gè)函數(shù)超時(shí)會(huì)返回0 if ( res == CMD_RET_SUCCESS ) return( USB_INT_SUCCESS ); else return( ERR_USB_UNKNOWN ); }
//以下是針對(duì)我的w79e227單片機(jī)的串口程序22.1184MHz晶振,ch376T上電是默認(rèn)的波特率 9600 //因?yàn)榭梢猿晒ψx寫
void CH376_PORT_INIT( void ) { SCON1 = 0x50; TMOD |= 0x20; TH1 = 0xFa; TR1 = 1; ES1=0; }
#ifdef UART_WORK_BAUDRATE void SET_WORK_BAUDRATE( void ) {
TH1 = 0xff; TR1 = 1; ES1=0; } #endif
理論上來(lái)說(shuō)是沒(méi)有什么影響的??赡苁悄愕挠布环€(wěn)定。 你檢查一下你的硬件。另外你可以通過(guò)軟件上的重試,看能否解決這個(gè)問(wèn)題
是否連接U盤和是否可以成功初始化CH376沒(méi)有關(guān)系, 上電延時(shí)50ms以后在初始化CH376
問(wèn)題已經(jīng)解決 是 電源不穩(wěn)定造成的 多謝 劉工技術(shù)支持
DC-DC電路,電源務(wù)必處理好。電容太小會(huì)造成紋波很大,導(dǎo)致系統(tǒng)不穩(wěn)定