串口发送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]=yyy.cc[0]; uart_o.send_buf_count++;         
          uart_o.send_buf[uart_o.send_buf_count]=yyy.cc[1]; uart_o.send_buf_count++;
          uart_o.send_buf[uart_o.send_buf_count]=yyy.cc[2]; uart_o.send_buf_count++;         

          uart_o.send_buf[uart_o.send_buf_count]=yyy.cc[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

你可能感兴趣的:(串口发送float型数据与解析)