那个反转怎么弄,忘了
追答假设存在字符数组unsigned char data[]里面
现在取温度,也就是data[6]-data[9]
*((int *)&t)=(data[9]<<24) |(data[8]<<16) |(data[7]<<8)| data[6];
这样应该就可以了 你试试
更简单的可以做个循环 连续取6组数据
大致
float result[6];
void parse(unsigned char data[], float *buffer)
{
int i;
for(i = 0; i <6; i ++)
*((int *)&buffer[i])=(data[i*4+9]<<24) |(data[i*4+8]<<16) |(data[i*4+7]<<8)| data[i*4+6];
}
调用的时候
parse(data, result);
然后依次使用result里面的6个数值就可以了
没有测试过 可能有小问题 你自己调一下
老大你看一下这边需要怎么写
serialPort1_DateReceived
这个函数是你用来接收数据的吧?
看现在的功能,是把接收的数据转为字符串了
把转字符串这部分功能去掉 然后按我说的转成float数组
UpdateReceive这个是显示的? 貌似是c# 不熟,不确定
不管怎样 得到float数组之后直接显示还是存起来等着其他时候用就随便你了
老大说的对,是显示的!我是新手,还是不知道唉
追答serialPort1_DateReceived在这里面把数据转成float 这个知道怎么转了吗?
至于如何显示 这个我就不懂了 毕竟没玩过C#
你这个分类错了 应该提交到c#那边去的
不过我想,传值+显示应该不难吧