日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 電子電路開發(fā)學(xué)習(xí)
[導(dǎo)讀]再次感謝沁恒官方寄送的這塊CH32V103開發(fā)板,集成了仿真下載器,集成了USB轉(zhuǎn)串口,還兼容了Arduino接口,使用起來很方便。FAT文件配置表經(jīng)過多年發(fā)展(FAT、FAT12、FAT16、FAT32、exFAT),目前已經(jīng)廣泛應(yīng)用在內(nèi)存卡、U盤等小容量存儲介質(zhì)中。FAT~F...


再次感謝沁恒官方寄送的這塊 CH32V103 開發(fā)板,集成了仿真下載器,集成了USB轉(zhuǎn)串口,還兼容了Arduino接口,使用起來很方便。

FAT 文件配置表經(jīng)過多年發(fā)展(FAT、FAT12、FAT16、FAT32、exFAT),目前已經(jīng)廣泛應(yīng)用在 內(nèi)存卡、U盤 等小容量存儲介質(zhì)中。

FAT~FAT16 由于最大容量限制等原因,目前已經(jīng)逐步退出歷史舞臺,F(xiàn)AT32目前使用還比較廣泛也是我正在使用的。

本文使用 FATFS,實現(xiàn)對文件目錄的檢索和長文件名的讀取轉(zhuǎn)換,最終將結(jié)果打印到串口調(diào)試助手。 
先看一下U盤里都存了什么(一不小心暴露了年齡):

通過FATFS,我們能輕而易舉的讀取到這些文件的 8.3 短文件名,8字節(jié)文件名(中文則為4字),3字節(jié)后綴。  ?

規(guī)規(guī)整整,但總覺得少了點什么,只有歌手名沒有歌曲名?小寫的后綴mp3變成大寫的?然后~1又是什么?
想了解短文件名的可以搜一下論壇了解,這里就不重復(fù),我們目的是長文件名,繼續(xù)。
在 FATFS 配置中開啟中文長文件名支持:#define _LFN_UNICODE ?? 1,開啟中文支持:#define _CODE_PAGE ?936


成功了一半,由于長文件名是 Unicode 編碼的,直接讀出來,再通過串口打印顯示,全是亂碼??這里就涉及編碼轉(zhuǎn)換問題,串口助手一般都是顯示GBK編碼的字符,編碼不同就導(dǎo)致亂碼,需要用到 FATFS 里的編碼轉(zhuǎn)換函數(shù)進(jìn)行轉(zhuǎn)換,但由于 GBK 和 Unicode 轉(zhuǎn)換是無規(guī)律的,只能純粹的查表,老美給中國人設(shè)置的坑???為什么要為難中文和非英文??這個表還非常大,要占用 170K 以上的存儲空間。。。

我這是一個 64K Flash 的單片機(jī)???
有難度才有動力啊,放入外置Flash?沒有Flash,那只好放入內(nèi)存卡了,剛好這些歌曲也是放在內(nèi)存卡的,就建立一個目錄,SYS,里面放入 Unicode 和 GBK 互轉(zhuǎn)的對照表。
內(nèi)存卡插入的時候,掛載文件系統(tǒng),讀取 Unicode 和 GBK 轉(zhuǎn)換表。
????????if(SD_Detect()) { if(sd_status == 0) { sd_status = 1; printf("Insert\r\n"); } } else { sd_status = 0; }
if(sd_status == 1) { path[0] = '0'; path[1] = ':'; path[2] = 0; res_sd = f_mount(
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉