CH376S根目錄創(chuàng)建新目錄成功后,在PC上無(wú)法看到該目錄

使用異步串行通訊方式,F(xiàn)IFO收發(fā)數(shù)據(jù)。參考技術(shù)手冊(cè)和FILE_SYS.C改寫(xiě)了相關(guān)代碼。

目前,在單片機(jī)中,使用CMD0H_DIR_CREATE命令建立文件返回0x14,再關(guān)閉文件,不自動(dòng)更新。但是,將U盤(pán)插到PC上,看不到新建的目錄,但U盤(pán)的容量已發(fā)生變化。U盤(pán)的文件系統(tǒng)是FAT32。請(qǐng)問(wèn)如何解決?

相關(guān)代碼如下:

? if (new_file_phase == 0)? ? ? ? ? ? ? ? ? ? ? ? ?// 初始化文件系統(tǒng)

? {

? ? usb_data_rd_number = 1;? ? ? ? ? ? ? ? ? ? ? ? // 1個(gè)回傳字節(jié)

? ? USB_CMD_WR(CMD11_READ_VAR8);?

? ? USIC1_CH0->IN[0] = 0x2B;

? ? usb_data_wait = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 等待回傳數(shù)據(jù)

? ? new_file_phase++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 進(jìn)入下一階段

? }

? else if (new_file_phase == 1)? ? ? ? ? ? ? ? ? ? // 新建文件夾或者打開(kāi)已有文件夾

? {

? ? if (data_receive_usb[0] == 0x10)? ? ? ? ? ? ? ?// 如果初始化成功

? ? {

? ? ? USB_CMD_WR(CMD10_SET_FILE_NAME);? ? ? ? ? ? ?// 設(shè)置文件名指令

? ? ? USIC1_CH0->IN[0] = '/';

? ? ? USIC1_CH0->IN[0] = 'S';

? ? ? USIC1_CH0->IN[0] = 'A';

? ? ? USIC1_CH0->IN[0] = 'V';

? ? ? USIC1_CH0->IN[0] = 'E';

? ? ? USIC1_CH0->IN[0] = '\0';

? ? ? new_file_phase++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 進(jìn)入下一階段

? ? ? usb_retry_counter = 5;

? ? }

? ? else if (usb_retry_counter)

? ? {

? ? ? usb_data_rd_number = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 1個(gè)回傳字節(jié)

? ? ? USB_CMD_WR(CMD10_SET_FILE_NAME);? ? ? ? ? ? ? ?// 設(shè)置文件名指令

? ? ? USIC1_CH0->IN[0] = '\0';

? ? ? USB_CMD_WR(CMD0H_FILE_OPEN);? ? ? ? ? ? ? ? ? ? ?// 打開(kāi)文件

? ? ? usb_data_wait = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 等待回傳數(shù)據(jù)

? ? ? usb_retry_counter--;? ? ? ? ? ? ? ? ? ? ? ? ? ?// 嘗試次數(shù)減1

? ? }

? ? else usb_error |= BIT4;? ? ? ? ? ? ? ? ? ? ? ? ? // 初始化故障

? }

? else if (new_file_phase == 2)

? {

? ? usb_data_rd_number = 1;? ? ? ? ? ? ? ? ? ? ? ? // 1個(gè)回傳字節(jié)

? ? USB_CMD_WR(CMD50_WRITE_VAR32);

? ? USIC1_CH0->IN[0] = 0x64;

? ? USIC1_CH0->IN[0] = 0x00;

? ? USIC1_CH0->IN[0] = 0x00;

? ? USIC1_CH0->IN[0] = 0x00;

? ? USIC1_CH0->IN[0] = 0x00;

? ? USB_CMD_WR(CMD0H_DIR_CREATE);

? ? usb_data_wait = 1;

? ? new_file_phase++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 進(jìn)入下一階段

? }

? else if (new_file_phase == 3)

? {

? ? ? USB_CLOSE_FILE(FALSE);? ? ? ? ? ? ? ? ? ? // 不更新文件長(zhǎng)度

? ? ? new_file_phase++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 進(jìn)入下一階段

? }

? else if (new_file_phase ==4)

? {

? ? if (data_receive_usb[0] == USB_INT_SUCCESS)

? ? {

? ? ? new_file_phase++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 進(jìn)入下一階段

? ? }

? ? else usb_error |= BIT7;

? }

運(yùn)行此段程序前,U盤(pán)初始化已完成,且剩余容量已能正確讀出。

你好:


你芯片的版本號(hào)是多少?


我也遇見(jiàn)同樣的問(wèn)題,我的版本號(hào)是0x43.請(qǐng)大神幫助解決問(wèn)題


我也遇見(jiàn)同樣的問(wèn)題,我的版本號(hào)是0x43.請(qǐng)大神幫助解決問(wèn)題


winhex看一下根目錄有東西嗎


芯片版本讀出來(lái)是0x02

U盤(pán)實(shí)際容量已被占用


已經(jīng)多次嘗試,發(fā)現(xiàn)芯片里有BUG。查詢(xún)剩余容量的指令與讀出文件系統(tǒng)狀態(tài)的指令是沖突的。

一旦在設(shè)定文件系統(tǒng)之前,讀取了剩余容量,那么U盤(pán)的狀態(tài)就會(huì)變成0x10,就是ready狀態(tài);

一旦在讀取剩余容量之前,讀取了文件系統(tǒng)狀態(tài),那么U盤(pán)的剩余容量數(shù)據(jù)就會(huì)不正確。


芯片是0X42,打錯(cuò)了


請(qǐng)問(wèn)樓上您說(shuō)的讀出文件系統(tǒng)狀態(tài)指令具體是哪一個(gè)指令呢?


讀這個(gè)地址的變量? VAR_DISK_STATUS


025-52632854您可以直接聯(lián)系我了解一下詳細(xì)的信息


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频