下载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)