最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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的用法)的評論 (共 條)

分享到微博請遵守國家法律
永清县| 轮台县| 黔西| 临夏县| 那曲县| 万宁市| 石楼县| 济阳县| 七台河市| 翁牛特旗| 泰顺县| 凤冈县| 美姑县| 新龙县| 乌兰察布市| 建瓯市| 武鸣县| 荣成市| 九寨沟县| 通渭县| 漳平市| 定结县| 凯里市| 张北县| 葫芦岛市| 灌云县| 永济市| 海兴县| 金塔县| 东兴市| 孙吴县| 邯郸市| 靖宇县| 仁寿县| 白河县| 烟台市| 奈曼旗| 库伦旗| 开远市| 黑河市| 栾川县|