串⼝发送float型数据与解析
最近在做智能车,采⽤了多CPU的⽅案,各个传感器分别采⽤了⼀个cpu进⾏数据的处理,然后将处理后的数据通过串⼝发送到另⼀块主控cpu 上。但在我以前应⽤串⼝时,都只是把字符类型或者字符串类型的数据发到串⼝。由于控制精度的需要,需要将浮点型数据发送到主控cpu上,查了些资料,采⽤了union共⽤体的⽅式将浮点数转换为四个字节的数据,放到数组中,进⾏数据的发送。
1.发送
union
{
float ii;
unsigned char cc[4];
}yyy;
yyy.ii=hubulb_o_x.angle;
uart_o.send_buf[uart_o.send_buf_count]=[0]; uart_o.send_buf_count++;
uart_o.send_buf[uart_o.send_buf_count]=[1]; uart_o.send_buf_count++;
uart_o.send_buf[uart_o.send_buf_count]=[2]; uart_o.send_buf_count++;
浮点型变量floatuart_o.send_buf[uart_o.send_buf_count]=[3]; uart_o.send_buf_count++;
2.接收
union
{
short sdata;
char cdata[4];
}a;
a.cdata[0]=receive_data[0];
a.cdata[1]=receive_data[1];
a.cdata[2]=receive_data[2];
a.cdata[3]=receive_data[3];
angle=a.sdata
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论