五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

協(xié)議的編寫 (sprintf的用法)

2021-06-28 10:50 作者:GXTon_阿通  | 我要投稿

有時候編寫協(xié)議的時候,需要進行一定格式的數(shù)據(jù)返回.

比如把十進制數(shù)據(jù)按返回十六進制放到指令中, 4096對應(yīng)的十六進制就是0x10 0x00.

即4096變換成十六進制0x1000,然后拆分成兩個字節(jié):0x10和0x00.

上面這種情況就可以用sprintf函數(shù).

怎么把一個速度(4096),轉(zhuǎn)換成十六進制的 0x10 ,0x00?進行返回呢?

步驟1:

int rate=4096;

然后進行移位:

unsigned?int part1=0;

unsigned int part2=0;

part1=((unsigned int)rate)<<8;

part2=((unsigned int)rate);

然后調(diào)用sprintf進行數(shù)據(jù)格式的轉(zhuǎn)換,并填充到緩存中.

char?DataBuf[50]={0};

? sprintf(DataBuf,"$DATA,%2x,%2x*",

(uint32_t)part1,??

(uint32_t)part2 ??

);

這樣rate就會被分成兩部分,放入到DataBuf[]中了,并且是十六進制的.

如果想要在里面添加?xùn)|西.比如包尾校驗.

DataCheckSum = DataCheck(DataBuf);

sprintf(BufOut,"%s%02X\r\n",DataBuf,DataCheckSum);

這樣就可以把數(shù)據(jù)保存到BufOut[]中了.


協(xié)議的編寫 (sprintf的用法)的評論 (共 條)

分享到微博請遵守國家法律
安仁县| 竹山县| 宁德市| 昭平县| 小金县| 临江市| 江永县| 怀宁县| 郸城县| 广州市| 营山县| 麻栗坡县| 沿河| 乳山市| 石城县| 大丰市| 石楼县| 正宁县| 思南县| 浦县| 茶陵县| 汉寿县| 娄烦县| 洛川县| 遂平县| 苏尼特左旗| 邵东县| 福鼎市| 三台县| 嵊泗县| 达日县| 来凤县| 晋城| 攀枝花市| 桐柏县| 耿马| 邵阳县| 安平县| 汨罗市| 河池市| 沐川县|