各位大蝦,我使用STM32F103VCT6與CH37S通訊232串口通訊, 初始化,與U盤鏈接都成功了,到了 s = CH376FileOpen( "/ABC.TXT" ); 這句話后返回03,不知什么原因?請指教。
源程序如下:void UsbStore(void) { uint8 i,s,j; UINT8 TarName[64]; /* 目標(biāo)文件名緩沖區(qū) */ // u16 RealCount; uint8 buf[128]; if((STATUSSUM.A==2)&&(USBCOMFLG.A==1)&&(USBCOMFLG.G==1)) { USBCOMFLG.A=0; j=0; while ( CH376DiskConnect( ) != USB_INT_SUCCESS )// 檢查U盤是否連接,等待U盤插入,對于SD卡,可以由單片機直接查詢SD卡座的插拔狀態(tài)引腳 { delay_ms( 100 ); j++; if(j>1) { USBCOMFLG.B=1; //U盤未插入或未插好 break; } } delay_ms( 200 ); if(USBCOMFLG.B==0) { for ( i = 0; i < 10; i ++ ) /* 最長等待時間,100*50mS */ { delay_ms( 50 ); s=CH376DiskMount(); // 初始化磁盤并測試磁盤是否就緒 if(s==USB_INT_SUCCESS) break; else if (s==ERR_DISK_DISCON) break; if ( CH376GetDiskStatus( ) >= DEF_DISK_MOUNTED && i >= 5 ) // 有的U盤總是返回未準(zhǔn)備好,不過可以忽略,只要其建立連接MOUNTED且嘗試5*50mS break; } if ( s == ERR_DISK_DISCON ) // 檢測到斷開 { USBCOMFLG.B=1; goto UsbFault; } if ( CH376GetDiskStatus( ) < DEF_DISK_MOUNTED ) // 未知USB設(shè)備,例如USB鍵盤、打印機等 { USBCOMFLG.C=1; goto UsbFault; } strcpy( (char *)TarName, "/ABC.TXT" ); //目標(biāo)文件名 s = CH376FileOpen( "/ABC.TXT" ); if ( s == USB_INT_SUCCESS ) { s=CH376ByteLocate(0xffffffff); mStopIfError(s); } else if(s ==ERR_MISS_FILE) { s = CH376FileCreate( "/ABC.TXT" ); // s = CH376FileOpen( TarName ); mStopIfError(s); } else { mStopIfError(s); goto UsbFault; }
strcpy((char *)buf, "兄弟們那個加油哇 呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵" ); s = CH376ByteWrite( buf, strlen((const char *)buf), NULL ); /* 以字節(jié)為單位向當(dāng)前位置寫入數(shù)據(jù)塊 */ delay_us(5); s = CH376FileClose( TRUE ); UsbFault: delay_us(5); } } }