我使用以下代码从串口获取数据:
for (sa = 0; sa < 15; sa++) {
printf("::%0.2X", buf[sa]);
}
我采用不同长度的数据,如下所示。 buf[4]
定义数组的长度。例如,如果buf[4] == 07
数组中有13个元素;如果buf[4] == 09
数组中有15个元素。
数据1:::02::03::98::00::07::20::16::09::30::13::15::23::B6::
数据2:::02::03::99::00::09::20::16::09::30::13::15::25::23::00::9C
我想编写类似上面的代码,我的整数LENGTH
会因buf[]
数组的长度而异。
for (sa = 0; sa < LENGTH; sa++) {
printf("::%0.2X", buf[sa]);
}
你有什么想法吗?
答案 0 :(得分:1)
根据LENGTH
buf[4]
int length = buf[4] + 6;
然后是你已经拥有的for循环。
答案 1 :(得分:0)
我会说:
for(sa=0;sa<buf[4]+5;sa++){
printf("::%0.2X",buf[sa]);
}
但是,如果您一次只获得一个元素,则可以改为:
for(sa=0;sa<4;sa++){
printf("::%0.2X",buf[sa]);
}
int length = buf[4] + 1;
printf("::%0.2X",length); //prints buf[4]
for(sa=0;sa<length;sa++){
printf("::%0.2X",buf[sa+5]);
}