討論: 波特率為115200,單片機應選多大的晶體誤差最小啊!?
一般選擇的話,都是選擇比較好計算的,一般的拿51單片機來說,可以是18。432或者22。1184
while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( ); /* 查詢CH375中斷并更新中斷狀態(tài),等待U盤插入 */ LED_OUT_ACT( ); /* LED亮 */ /* 檢查U盤是否準備好,有些U盤不需要這一步,但是某些U盤必須要執(zhí)行這一步才能工作 */ for ( i = 0; i < 5; i ++ ) { /* 有的U盤總是返回未準備好,不過可以被忽略 */ mDelay100mS( ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查詢磁盤是否準備好 */ } xWriteCH375Cmd(CMD_SET_BAUDRATE); //設置新的375波特率,設置為115200 xWriteCH375Data(0x03); //輸入分頻系數(shù) xWriteCH375Data(0xCC); //輸入分頻常數(shù) mDelay100mS( ); TH1 = 0xFF ;//重新設置單片機的波特率//, 單片機22.1184MHz
for(count=3;count>0;count--){
/* 開始操作U盤 */
以上部分有錯誤沒啊?怎么不運行啊! LED_RUN_ACT( ); 一直沒有亮. 但U盤的燈一直亮
你前面以默認波特率9600通信是正常的嗎? 按你采用22.1184晶振的話,應該不存在誤差大的問題了。設置波特率成功的話,會返回一個操作碼,你看一下返回的操作碼是否正確,也就是看一下波特率是否確實設置成功了。