(一)在平時(shí)數(shù)據(jù)傳輸中很少用到接收中文的情況,但是最近需要用到就花了半天時(shí)間來(lái)弄弄
(二)接收原理,從現(xiàn)在接收情況分析:一個(gè)中文占兩個(gè)數(shù)據(jù)的空間,也就是兩個(gè)十六進(jìn)制可以轉(zhuǎn)化成為一個(gè)中文
(三)示例情況,用Hex Editor來(lái)看看中文 “你好”,可以看到四個(gè)十六進(jìn)制數(shù)據(jù):0xc4,0xe3,0xba,0xc3
(四)我們的目的還是單片機(jī)通過(guò)串口來(lái)進(jìn)行數(shù)據(jù)的接收,用CH340短接T和R看看發(fā)送“你好”也是會(huì)接收到十六進(jìn)制0xc4,0xe3,0xba,0xc3
(五)從上面兩點(diǎn)來(lái)看,一個(gè)中文占據(jù)兩個(gè)數(shù)據(jù),也就是說(shuō)當(dāng)我們發(fā)送“你好”給單片機(jī)時(shí)候?qū)嶋H中斷了四次,接收到的數(shù)據(jù)分別為0xc4,0xe3,0xba,0xc3
那么我們就可以通過(guò)接收到的數(shù)據(jù)來(lái)將數(shù)據(jù)轉(zhuǎn)化成為中文了,搜索GB2312表可以知道對(duì)應(yīng)的“你” = 0xe3c4;; '好' = 0xc3ba
也就是兩位對(duì)應(yīng)一個(gè)中文嘛,那么如何將0xc4,0xe3合成0xe3c4;;將0xba,0xc3合成0xc3ba,然后將數(shù)據(jù)轉(zhuǎn)化成為字符形式就可使轉(zhuǎn)化成為中文了
(六)通過(guò)C語(yǔ)言的方法來(lái)進(jìn)行上面四個(gè)數(shù)據(jù)轉(zhuǎn)化成為中文,我用的是VS中的C++來(lái)編譯的,哪里都可以定義數(shù)組那些,如果出錯(cuò)請(qǐng)自行修改將定義放到前面來(lái)。
1 #include 2 #include 3 using namespace std; 4 char *Chinese(int table[],char length,char str[]); /*將數(shù)據(jù)放進(jìn)去得到字符出來(lái)*/ 5 int convert_data(int table[2]); 6 void main(void) 7 { 8 /*GB2312,你的代碼是0xe3c4,好的代碼是0xc3ba,具體的可以使用軟件Hex Editor來(lái)看看*/ 9 int test1[] = {0xe3c4}; /*你*/ 10 printf('%srn',test1); 11 int test2[] = {0xc3ba}; /*好*/ 12 printf('%srn',test2); 13 14 /*單片機(jī)發(fā)送或者接收到“你好”,會(huì)得到下面四個(gè)數(shù)據(jù),將下面四個(gè)數(shù)據(jù)轉(zhuǎn)換成中文“你好”*/ 15 int table[4] = {0xc4,0xe3,0xba,0xc3}; 16 char str[100]; 17 /*輸入數(shù)組 長(zhǎng)度 返回保存地址*/ 18 char *str4 = Chinese(table,4,str); 19 printf('%srn',str4); 20 } 21 22 int convert_data(int table[2]) /*接收的兩個(gè)數(shù)據(jù)轉(zhuǎn)換成為一個(gè)數(shù)據(jù)*/ 23 { 24 return (table[1] << 8)|table[0]; 25 } 26 27 char *Chinese(int table[],char length,char str[]) /*將數(shù)據(jù)放進(jìn)去得到字符出來(lái)*/ 28 { 29 int i = 0; 30 int data1[1]; 31 char data2[100]; 32 data1[0] = (table[i + 1] << 8)|table[i]; 33 sprintf(data2,'%s',data1); 34 strcpy(str,data2); /*先取第一個(gè)中文先*/ 35 for(i = 2;i < length; i = i + 2) 36 { 37 data1[0] = (table[i + 1] << 8)|table[i]; /*將0xc4,0xe3弄成0xe3c4,將0xba,0xc3換成0xc3ba*/ 38 sprintf(data2,'%s',data1); 39 strcat(str,data2); 40 } 41 42 return str; 43 } 編譯運(yùn)行的結(jié)果 (七)STM32串口接收中文 (1)資料下載:https://download.csdn.net/download/xiaoguoge11/10804315 (2)視頻演示:https://v.qq.com/x/page/g0800sirmx3.html
上一篇:021_STM32程序移植之_ESP8266連接onenet
下一篇:017_STM32程序移植之_AS608指紋模塊
推薦閱讀最新更新時(shí)間:2025-04-23 17:38




設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開(kāi)發(fā)環(huán)境為開(kāi)發(fā)者提供支持
- iTOP-i.MX6開(kāi)發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開(kāi)發(fā)板Qt for Android搭建開(kāi)發(fā)環(huán)境
- 迅為i.MX8M mini開(kāi)發(fā)板Windots QT系統(tǒng)開(kāi)發(fā)環(huán)境搭建
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開(kāi)發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開(kāi)發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開(kāi)發(fā)板Yocto系統(tǒng)設(shè)置開(kāi)機(jī)自啟動(dòng)
- 迅為IMX6Q開(kāi)發(fā)板 Buildroot文件系統(tǒng)mqtt測(cè)試
- DC2100B-A,用于使用 LTC3300-1 和 LTC6804-2 電池管理的雙向電池平衡器的演示板
- L4940V5 超低壓降 1.5A 穩(wěn)壓器的典型應(yīng)用,使用 L4940 對(duì)開(kāi)關(guān)模式電源進(jìn)行二次調(diào)節(jié)
- 使用 MaxLinear, Inc 的 SP7606ER-L 的參考設(shè)計(jì)
- 使用具有 B 類(lèi) EMI 濾波(單輸出)的 RP10-1215SA DC/DC 轉(zhuǎn)換器的典型應(yīng)用
- BD9C401EFJEVK-101,評(píng)估套件,具有 BD9C401EFJ、內(nèi)置低導(dǎo)通電阻功率 MOSFET 的同步降壓開(kāi)關(guān)穩(wěn)壓器
- 使用 Microchip Technology 的 LX7169 的參考設(shè)計(jì)
- MOSFET的并聯(lián)使用 (TPH1R306PL)應(yīng)用電路
- ESP32_HMI 3.5'
- CH340N-USB轉(zhuǎn)TTL串口燒錄器
- 用于通信/電信的 5V DC 至 DC 單路輸出電源
- 高通攜手中國(guó)“汽車(chē)朋友圈”亮相2025上海車(chē)展: 加速駕駛輔助普惠,推動(dòng)艙駕創(chuàng)新升級(jí)
- 工業(yè)市場(chǎng)正在快速回暖,德州儀器如何重塑電力電子市場(chǎng)?
- 特斯拉:美國(guó)交付的Model Y/3電池包已實(shí)現(xiàn)100%美國(guó)生產(chǎn)
- 地平線與博世深化合作,攜手為多家車(chē)企提供輔助駕駛產(chǎn)品
- 強(qiáng)化中國(guó)市場(chǎng)戰(zhàn)略布局,德州儀器正靈活應(yīng)對(duì)全球關(guān)稅挑戰(zhàn)
- Molex莫仕通過(guò)本地合作和創(chuàng)新加強(qiáng)支持中國(guó)汽車(chē)行業(yè)
- 貿(mào)澤開(kāi)售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車(chē)數(shù)字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實(shí)現(xiàn)車(chē)載充電器小型化!
- 用上車(chē)規(guī)級(jí)UFS 4.0,讓出行變得高效且可靠
- 車(chē)載測(cè)試技術(shù)解析:聚焦高帶寬、多通道同步采集與協(xié)議分析
- 邀你聊一聊:學(xué)習(xí)MCU的正確方法和你的學(xué)習(xí)之路
- 2025玄鐵RISC-V生態(tài)大會(huì) 火熱報(bào)名中,參會(huì)贏好禮
- 呼朋換友學(xué)電源,知識(shí)、好禮贏在手!
- Microchip 直播|時(shí)間同步的必要性及其解決方案
- TI汽車(chē)方案拼圖,你敢挑戰(zhàn)嗎?
- 【溫故喝新之單片機(jī)版塊】溫2016年MCUs,喝2017年版塊新篇章
- 泰克測(cè)試精英養(yǎng)成計(jì)劃——答題贏好禮
- 下載泰克電源設(shè)計(jì)測(cè)試方案+圖文攻略 幫助工程師解決電源效率問(wèn)題。有好禮
- “福祿克早間知識(shí)講堂”微信號(hào)上線,如何成為小粉絲?
- 泰克NAB 2019上吸睛操作,展示完整HDR視頻工作流程解決方案
- China EMC2019 觀眾預(yù)登記開(kāi)啟,不容錯(cuò)過(guò)
- Manz 亞智科技推進(jìn)FOPLP新工藝發(fā)展
- 東芝推出面向家用電器及工業(yè)設(shè)備的三相無(wú)刷電機(jī)控制器IC
- 國(guó)產(chǎn)新能源汽車(chē)的“出海夢(mèng)”:既美好,又殘酷!
- 博世型輕巧智能充電線纜告別“充電盒”
- 評(píng)價(jià)一下大眾的小型純電動(dòng)汽車(chē)平臺(tái)MEB-Small
- 鈉離子電池是否能成為下一代未來(lái)電池之光?
- 預(yù)發(fā)機(jī)料位測(cè)量中為何要選擇可靠性高的料位開(kāi)關(guān)