我以字節(jié)為單位寫入一個(gè)字母,結(jié)果不對(duì),麻煩看下 int main (void) { UINT8 s; UINT8 buf0[64] = "/電法儀"; UINT8 buf1[64] = "/電法儀/數(shù)據(jù)"; UINT8 buf2[64] = "/電法儀/數(shù)據(jù)/數(shù)據(jù).TXT"; INT8U data[1]={100}; s=UsbInit( ); if(s != USB_INT_SUCCESS) return(0); s = CH376DirCreate( buf0 ); //新建或者打開目錄,該目錄建在根目錄下 //新建或者打開目錄,該目錄建在根目錄下 if ( s == ERR_FOUND_NAME )return(0); //printf( "Found a file with same name\n" ); CH376FileClose( FALSE ); //關(guān)閉目錄 s = CH376DirCreatePath( buf1 ); // 新建或者打開目錄,該目錄建在多級(jí)目錄下,輸入路徑必須在RAM中 if ( s == ERR_FOUND_NAME )return(0) ; // printf( "Found a file with same name\n" ); s = CH376FileCreatePath( buf2 ); // 新建或者打開目錄,該目錄建在多級(jí)目錄下,輸入路徑必須在RAM中 if ( s == ERR_FOUND_NAME ) return(0); // printf( "Found a file with same name\n" ); CH376FileClose( FALSE ); s =CH376ByteWrite(data, sizeof(data), NULL ); /* 查詢磁盤剩余空間信息,扇區(qū)數(shù) */ if ( s == ERR_FOUND_NAME )return(0) ; CH376FileClose( FALSE ); } 另外改為扇區(qū)單位寫數(shù)據(jù)把CH376ByteWrite改為CH376SecWrite可以嗎?
補(bǔ)充下用U盤寫數(shù)據(jù)本來(lái)文件里會(huì)有個(gè)d 但是文件里是I
目錄和文件愛你都可以創(chuàng)建嗎?還有調(diào)用寫函數(shù)也成功了嗎?
CH376FileClose( FALSE ); FALSE選為TRUE,更新文件長(zhǎng)度 可以換成扇區(qū)寫函數(shù),有些注意事項(xiàng),參考EXAM8
目錄可以創(chuàng)建,但是在子目錄下創(chuàng)建文件好像有問(wèn)題。我就直接在跟母錄下建文件,寫數(shù)據(jù)時(shí)還是沒(méi)有用。 nt main (void) { UINT8 s; UINT8 buf1[64] = "/數(shù)據(jù).TXT"; unsigned char data[1]={100}; s=UsbInit( ); if(s != USB_INT_SUCCESS) return(0); s = CH376FileCreate( buf1 ); // if ( s == ERR_FOUND_NAME ) return(0); // printf( "Found a file with same name\n" ); CH376FileClose( TRUE ); s =CH376ByteWrite(data, 3, NULL ); if ( s == ERR_FOUND_NAME )return(0) CH376FileClose( TRUE); } 還是沒(méi)用,在根目錄下創(chuàng)建文件可以 但是文件有一個(gè)字節(jié) 占8KB 我知道創(chuàng)建文件是有一個(gè)字節(jié),但是要占8KB嗎?
占8K說(shuō)明你的U盤一個(gè)簇的大小是8K。U盤在文件管理的時(shí)候使用簇的方式管理。即使只有一個(gè)字節(jié)也占用一個(gè)簇。CH376默認(rèn)創(chuàng)建好文件之后文件大小為一個(gè)字節(jié)的。
s =CH376ByteWrite(data, 3, NULL ); date里面的數(shù)據(jù)是什么?返回值S是什么
unsigned char data[1]={100}; data的數(shù)據(jù)應(yīng)該是d S返回值好像是0xcd(我在宿舍這個(gè)記得不是很清楚,實(shí)驗(yàn)室沒(méi)網(wǎng),不好意思),正確的話返回值應(yīng)該是多少?
正確的返回值是0X14,返回值不對(duì)的話就代表沒(méi)有寫成功
額,我回到初始化那段,發(fā)現(xiàn)插上U盤模塊LED會(huì)亮,但是寫入一個(gè)數(shù)據(jù),讀出來(lái)的不是按位取反數(shù),還是0XCD,我之前從初始化返回值是對(duì)的,才接著往下弄的,請(qǐng)問(wèn)最有可能錯(cuò)在哪里?
你發(fā)的是測(cè)試命令嗎?還有你可以測(cè)下插入U(xiǎn)盤之后USB口的電壓變成多少了?還有設(shè)置模式之后看下CH376芯片的中斷引腳是否拉低。
s =CH376ByteWrite(data, 3, NULL ); data大小只有一個(gè)字節(jié),你怎么寫3個(gè)呢?還有在寫文件需要打開文件