www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > TopSemic嵌入式
[導(dǎo)讀]在嵌入式產(chǎn)品開發(fā)中,經(jīng)常會遇到兩個設(shè)備之間的通信、設(shè)備與服務(wù)器的通信、設(shè)備和上位機的通信等,很多時候通信協(xié)議都是自定義的,所以就涉及到自定義協(xié)議的解析和組包問題。比如針對下面的這樣一個協(xié)議:幀頭1幀頭2字段1字段2校驗固定值:0x55固定值:0xAA設(shè)備ID電壓值前面所有數(shù)據(jù)異或...

在嵌入式產(chǎn)品開發(fā)中,經(jīng)常會遇到兩個設(shè)備之間的通信、設(shè)備與服務(wù)器的通信、設(shè)備和上位機的通信等,很多時候通信協(xié)議都是自定義的,所以就涉及到自定義協(xié)議的解析和組包問題。

比如針對下面的這樣一個協(xié)議:

幀頭1幀頭2字段1字段2校驗
固定值:0x55固定值:0xAA設(shè)備ID電壓值前面所有數(shù)據(jù)異或值
charcharshortfloatchar
1字節(jié)1字節(jié)2字節(jié)4字節(jié)1字節(jié)
數(shù)據(jù)在發(fā)送時涉及到一個大小端的概念,大小端是針對多字節(jié)數(shù)據(jù)的傳輸,比如上述協(xié)議中字段1,假設(shè)兩字節(jié)內(nèi)容為0x0001,先發(fā)送0x01后發(fā)送0x00,稱為小端模式;先發(fā)送0x00后發(fā)送0x01,稱為大端模式。

假設(shè)字段1內(nèi)容為0x001,字段2內(nèi)容為0x40533333?(對應(yīng)為3.3)

假設(shè)按照小端方式發(fā)送,下面是幀數(shù)據(jù):

55 AA 01 00 33 33 53 40 ED

下面來看看如何解析,

若干年前,在第一次面對這種問題時,用的如下傻瓜式的代碼方式實現(xiàn):

#include?

int?main()
{
????unsigned?char?Rxbuf[9]?=?{0x55,0xAA,0x01,0x00,0x33,0x33,0x53,0x40,0xED};

????short?DeviceId;
????float?Voltage;

????unsigned?char?check?=?0;
????int?i;

????for(i=0;i<8;i )
????{
????????check?^=?Rxbuf[i];
????}

????if(Rxbuf[0]==0x55?
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉