有沒有使用MSP430F5438控制CH376實現(xiàn)存儲的?最新一直在做,但有時候出現(xiàn)bug。不知道怎么解決?求各位好人發(fā)一個參考一下。我的郵箱個人信息保護,已隱藏
請問是什么接口通訊?什么BUG呢
今天把昨天的BUG解決了。但是又出現(xiàn)了新的問題:我使用的MSP430F5438中硬件SPI通信方式,今天老是初始化不成功。一直進入if( res != 0x9A )?
{
return( ERR_USB_UNKNOWN ); ?
}
一直進入這個條件。res一直為0x9A
1、片選CS引腳初始時需要拉高,在發(fā)送命令時拉低,接著發(fā)數(shù)據(jù)、讀數(shù)據(jù),然后拉高CS。
2、發(fā)命令之后延時2US,發(fā)數(shù)據(jù)之后延時1us,讀數(shù)據(jù)之前延時1us。
3、硬件SPI選擇模式0或者模式3
?
CH376_Port_Init( ); ? /* 接口硬件初始化 */
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? CH378_SPI_SCS_LOW( ); //拉低CS
? ? ? ? ? ? ? ? ? ? ? ? //發(fā)送命令之后延時2US
xWriteCH376Cmd( CMD11_CHECK_EXIST ); ?
? ? ? ? ? ? ? ? ? ? ? ? mDelayuS( 2 ) ;
xWriteCH376Data( 0x65 );
? ? ? ? ? ? ? ? ? ? ? ? mDelayuS( 1 ) ;
? ? ? ? ? ? ? ? ? ? ? ? mDelayuS( 1 ) ;
res = xReadCH376Data( );
? ? ? ? ? ? ? ? ? ?
xEndCH376Cmd( );//拉高CS
if( res != 0x9A )?
{
return( ERR_USB_UNKNOWN ); ?
}
這是我的一部分。按照你說的第一步和第二步進行的。但還是一直進入return( ERR_USB_UNKNOWN )這句話。對于您說的第三句我不是很理解。你能解釋一下么?
你好。我想問一下,我找到了我基本初始化失敗的原因。失敗的原因是:
xWriteCH376Cmd( 0x06 ); ?
xWriteCH376Data( 0x65 );
? ? ? ? ? ? ? ? ? ??
res = xReadCH376Data( );
? ? ? ? ? ? ? ? ? ?
xEndCH376Cmd( );//拉高CS
if( res != 0x9A )?
{
return( ERR_USB_UNKNOWN ); ?
}
/* 設置CH378工作模式 */
xWriteCH376Cmd( CMD11_SET_USB_MODE ); ? /* 設備USB工作模式 */
xWriteCH376Data( 0x07 );
mDelaymS( 50 );?
res = xReadCH376Data( );
xEndCH376Cmd( );
if( res == CMD_RET_SUCCESS )?
{
return( USB_INT_SUCCESS );
}
else?
{
return( ERR_USB_UNKNOWN ); ? /* 設置模式錯誤 */
}
發(fā)送這些指令的返回值有錯誤。發(fā)送0x06,返回值有時候是0x9A,有時候是0x86有時候是0xF9。我想問一下這是什么原因?謝謝
先排除硬件上的因素:晶振起振情況、供電電壓與V3引腳對應關系、SPI通訊接口是否選通、復位引腳(RSTI)恢復后需延時50MS操作。
如果硬件都排除了,用示波器或邏輯分析儀抓一下硬件SPI的波形。SPI的clock不超過24MHz。
謝謝你們的解答。今天初始化成功了。但又出現(xiàn)了新的問題:
UINT8 Query376Interrupt( void )
{
? ? ? ? ? ? ? ? ? #ifdefCH376_INT_WIRE
? ? ? ? ? ? ? return( CH376_INT_WIRE ? FALSE : TRUE ); ?
? ? ? ? ? ? ? ? ? #else
? ? ? ? ? ? ? return( CH376_SPI_SDO ? FALSE : TRUE ); ?
? ? ? ? ? ? ? ? ? ?#endif
}
執(zhí)行這個函數(shù)時,一直是返回錯誤。不知道是什么原因?
spi模式?jīng)]有產(chǎn)生中斷嗎?有沒有復用SDO引腳,如果復用,需在片選拉高(無效)后,配置MISO引腳為普通IO輸入引腳。如果沒有復用,需要配置CH376_INT_WIRE為普通IO輸入引腳。以上配置均為函數(shù)Query376Interrupt的中斷查詢方式。
文件創(chuàng)建成功了并且數(shù)據(jù)寫入也成功了,但是一個字符串以一個字節(jié)的方式寫入時,每次僅僅只能寫入字符串的第一個字符?這是什么原因?
寫完數(shù)據(jù)還需刷新文件長度。fileclose(1).