|
2黑幣
本帖最后由 hei51com 于 2020-6-24 10:17 編輯
需要通過串口(TX,RX)發送歌曲名(utf8 格式)給MCU。
MCU要求以下面的格式發:
比如歌曲名是CD1,那發送0x43 0x44 0x31。
這應該是要以ASCII 十六進制發給MCU吧?
那是不是要把歌曲名utf8 格式轉換為ASCII 十六進制,然后通過串口把ASCII 十六進制發給MCU?
歌曲名(utf8格式)、中、英文怎么區別處理?
感謝回答,可能是我描述的不太清楚,再補充以下
//底層只給了以下結構體,char *name 是歌曲名
typedef struct GetFileNameEvtTag {
QEvt super;
char *name; //USB 歌曲名(utf8 格式)
int num;
} GetFileNameEvt;
//調用
GetFileNameEvt *pe = (GetFileNameEvt *)e;
UINT16 name_len = strlen(pe->name);
printf(" song name %s,len %d\n",pe->name,name_len); //U盤里面的歌曲名是“CD1.mp3”,這里打印pe->name 也是"CD1.mp3",說明這樣調用是對的。
我把歌曲名改為CD1我.mp3,打印pe->name出來是"CD1鎴mp3",有中文時打印出來就不正確。
問題:
1.歌曲名有中、英文,怎么打印才能正常?
2.歌曲名有中、英文,怎么以ASCII 十六進制發給MCU?或者以怎么格式發給MCU(MCU收到后又怎么解析)。
|
最佳答案
查看完整內容
可以以文本形式發送字符串,如"CD1",接收端把數據串按字節保存在緩存數組,如果傳輸的信息有規律且范圍不太大,可以把相關信息創建一個二維數組,用查表法解析播放指令。
|