ch32v203 usb模擬U盤,格式化成功,但寫文件會(huì)破壞U盤FAT系統(tǒng),求解決

使用官方例程CH32V20xEVT\EVT\EXAM\USB\USBD\UDisk_Flash,能夠識(shí)別出U盤,也能夠正常讀寫。但該U盤扇區(qū)大小為4096字節(jié),單片機(jī)加載FATFS文件系統(tǒng)的話,扇區(qū)大小是512字節(jié)的。我自己對(duì)SW_UDISK.c文件里的void UDISK_Up_OnePack( void );和void UDISK_Down_OnePack( uint8_t *pbuf, uint16_t packlen );函數(shù)進(jìn)行修改。可以識(shí)別出U盤,扇區(qū)大小也改成了512字節(jié)。但,一旦寫入文件(文件沒寫成功),會(huì)破壞U盤的FAT系統(tǒng),導(dǎo)致下次再插入U(xiǎn)SB的時(shí)候,電腦就彈出來(lái)是否需要格式化。通過(guò)打印UDISK_Cur_Sec_Lba(扇區(qū)指引),發(fā)現(xiàn)當(dāng)寫入文件時(shí),UDISK_Cur_Sec_Lba會(huì)跳到0,即對(duì)FAT盤0扇區(qū)進(jìn)行寫入。感覺是寫入的時(shí)候,UDISK_Cur_Sec_Lba亂跳,并沒有按照文件系統(tǒng)要求進(jìn)行指引。希望能幫忙解決,謝謝!

您好,

????????在這個(gè)例程中存在兩種模擬U盤的方式,一是使用芯片內(nèi)部Flash作為存儲(chǔ)空間,二是使用外掛的SPI Flash作為存儲(chǔ)空間,按照您的描述,文件沒有寫入成功,我想知道您是使用了那種方式開辟的存儲(chǔ)空間?

????????USB上傳和下載函數(shù)具體做了哪些修改呢,U盤扇區(qū)大小有相關(guān)的定義可以直接修改,如果方便的話,您可以將修改內(nèi)容或工程文件發(fā)送至我的郵箱,周一上班后第一時(shí)間協(xié)助您排查問(wèn)題。lbw@wch.cn

????????另,在使用例程測(cè)進(jìn)行試時(shí),您可以選擇使用FAT32進(jìn)行測(cè)試,查看是否可以解決該問(wèn)題。


你好,使用外掛W25Q128,直接修改DEF_CFG_DISK_SEC_SIZE 為512會(huì)出現(xiàn)無(wú)法格式化問(wèn)題。我已經(jīng)將工程發(fā)到你郵箱了。希望能幫忙分析一下,甚是感謝!


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

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