亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標題: 請教:通過串口(TX,RX)發送歌曲名給MCU,歌曲名格式是utf8,如何解析呢? [打印本頁]

作者: hei51com    時間: 2020-6-20 16:15
標題: 請教:通過串口(TX,RX)發送歌曲名給MCU,歌曲名格式是utf8,如何解析呢?
本帖最后由 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收到后又怎么解析)。





作者: wulin    時間: 2020-6-20 16:15
可以以文本形式發送字符串,如"CD1",接收端把數據串按字節保存在緩存數組,如果傳輸的信息有規律且范圍不太大,可以把相關信息創建一個二維數組,用查表法解析播放指令。
作者: 51hei**1140    時間: 2020-6-20 21:48
沒看明白你是要做什么
作者: adject    時間: 2020-6-22 00:08
英文字母發送 就是ASCII嗎
作者: scll1    時間: 2020-6-22 13:12
Ascll只是可以吧字母什么的翻譯成2進制,你2進制發過去,mcu里面再把數據按ascll碼規則變成字符,不就是完成數據交互了
作者: hei51com    時間: 2020-6-24 10:17
51hei**1140 發表于 2020-6-20 21:48
沒看明白你是要做什么

感謝回答,可能是我描述的不太清楚,再補充以下

//底層只給了以下結構體,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收到后又怎么解析)。

作者: hei51com    時間: 2020-6-24 10:20
adject 發表于 2020-6-22 00:08
英文字母發送 就是ASCII嗎

感謝回答!
是的,但歌曲名有中、英文的時候,怎么發送給MCU呢?或者怎么判斷有沒有中文(是中文就不發送給MCU)
作者: hei51com    時間: 2020-6-24 10:21
scll1 發表于 2020-6-22 13:12
Ascll只是可以吧字母什么的翻譯成2進制,你2進制發過去,mcu里面再把數據按ascll碼規則變成字符,不就是完 ...

感謝回答,可能是我描述的不太清楚,再補充以下
//底層只給了以下結構體,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收到后又怎么解析)。

作者: hei51com    時間: 2020-6-24 10:21
wulin 發表于 2020-6-22 17:19
可以以文本形式發送字符串,如"CD1",接收端把數據串按字節保存在緩存數組,如果傳輸的信息有規律且范圍不太 ...

感謝回答,可能是我描述的不太清楚,再補充以下
//底層只給了以下結構體,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收到后又怎么解析)。





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1