我还是不太理解您说得意思。我再说一下我的问题
输入是10进制数,int型的数据,本来是float型的数据,想着可能更不好处理,此时直接将设备传过来的数据,强转为int
比如:int data = 16677234;
我的想法是将其先转换为data 对应的十六进制。data的十六进制是:FE7972
本来想着使用itoa()函数将其转换成为十六进制数,缓冲区为str[10],但是这个函数将十六进制数保存是每一个数保存一个字节。 比如:FE7972 ,此时如果使用这个函数,直接会将其转换成为 str[1] = F,str[2] = E,str[3] = 7这种形式,并不能将十六进制数的
每两位保存下来。如:str[1] = '0xFE'
此时的data这个数据在通信协议中处在中间的位置,然后十六进制的每两位当作一个字节数据,然后直接发送给下位机程序,
直接发送给电机()
以这种形式 char value[] = {0x23,0x21,0x45,0x34,0x00,0x00,0xFE,0x79,0x72,0x00}
|