配置Jetson XAVIER NX串口通信,不使用union传递浮点数

下载minicom

sudo apt-get install minicom

配置minicom

sudo minicom -s

在这里插入图片描述
选择"Serial port setup"
根据需要完成相关配置
根据需要完成相关配置
在这里插入图片描述

下载serial

sudo apt install libserial-dev  

传递一个浮点数数组

不需要使用union

#include<SerialStream.h>
using namespace LibSerial;
SerialStream serial_por;
char* a = new char[4];//假设传一个四位的数,包含两位小数
sprintf(a,"%4.2f",value_to_be_transmit);//value_to_be_transmit是要传的浮点数
serial_por.write(a,sizeof(a));

C++例程

#include<SerialStream.h>
using namespace LibSerial;
SerialStream serial_por;
void send_value(float value_angle[5],float value_distance[5])
{
    char a[2]={char(0x03),char(0xfc)};//帧头
    char b[2]={char(0xfc),char(0x03)};//帧尾
    char c[1]={0x23};//#
    char d[1]={0x20};//空格
    char* distance=new char[7];//传一个七位的距离
    char* angle   =new char[2];//传一个两位的角度
    int float_to_int[5];//把float型转为int型
    for(int j=0;j<5;j++)
    {
        float_to_int[j]=value_angle[j];
    }
    for(int k=0;k<5;k++)
    {
        serial_por.write(a,2);//帧头
        sprintf(angle,"%02d",float_to_int[k]);//把格式化的数据写入angle指向的字符串中
        serial_por.write(angle,sizeof(angle));//串口发出
        serial_por.write(b,2);//帧尾

        serial_por.write(a,2);
        sprintf(distance,"%7.4f",value_distance[k]);//保留7位,小数点后占四位
        serial_por.write(distance,sizeof(distance));
        serial_por.write(b,2);

        serial_por.write(a,2);
        serial_por.write(c,1);
        serial_por.write(b,2);
    }

    serial_por.write(a,2);
    serial_por.write(d,2);
    serial_por.write(b,2);
}

cmake

修改CMakeLists

target_link_libraries(XXXXX serial)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值