1)软件版本1.3.10
2)三种通信协议说明
RawData: 最基本的通信协议,接收到什么,便打印什么,不做数据的解析处理,仅用于查看字节流数据。
JustFloat: 本协议是小端浮点数组形式的字节流协议,纯十六进制浮点传输,节省带宽。此协议非常适合用在通道数量多、发送频率高的时候。
FireWater: 本协议是CSV风格的字符串流,直观简洁,编程像printf简单。但由于字符串解析消耗更多的运算资源(无论在上位机还是下位机),建议仅在通道数量不多、发送频率不高的时候使用。
3)本次测试使用的JustFloat:协议,串口通信发送数据测试,使用STM32测试
注意通信协议格式。float型需要转化为char型发送。
void float_char(float f,unsigned char *s)
{
union change
{
float d;
unsigned char dat[4];
}r1;
r1.d = f;
*s = r1.dat[0];
*(s+1) = r1.dat[1];
*(s+2) = r1.dat[2];
*(s+3) = r1.dat[3];
}
float testsindatau1 = 0;
float testsindatau2 = 0;
float testsindatau3 = 0;
float testsindatau4 = 0;
float testsindatau5 = 0;
//²âÊÔVOFA+´®¿Ú·¢ËÍ
u8 testdataarraytemp[4] = {0};
u8 testdataarray[24] = {0};
testsindatau1 += 1;
testsindatau2 += 2;
testsindatau3 += 3;
testsindatau4 += 4;
testsindatau5 += 5;
if(testsindatau1 > 250)
{
testsindatau1 = 0;
}
if(testsindatau2 > 250)
{
testsindatau2 = 0;
}
if(testsindatau3 > 250)
{
testsindatau3 = 0;
}
if(testsindatau4 > 250)
{
testsindatau4 = 0;
}
if(testsindatau5 > 250)
{
testsindatau5 = 0;
}
float_char(testsindatau1,testdataarraytemp);
testdataarray[0] = testdataarraytemp[0];
testdataarray[1] = testdataarraytemp[1];
testdataarray[2] = testdataarraytemp[2];
testdataarray[3] = testdataarraytemp[3];
float_char(testsindatau2,testdataarraytemp);
testdataarray[4] = testdataarraytemp[0];
testdataarray[5] = testdataarraytemp[1];
testdataarray[6] = testdataarraytemp[2];
testdataarray[7] = testdataarraytemp[3];
float_char(testsindatau3,testdataarraytemp);
testdataarray[8] = testdataarraytemp[0];
testdataarray[9] = testdataarraytemp[1];
testdataarray[10] = testdataarraytemp[2];
testdataarray[11] = testdataarraytemp[3];
float_char(testsindatau4,testdataarraytemp);
testdataarray[12] = testdataarraytemp[0];
testdataarray[13] = testdataarraytemp[1];
testdataarray[14] = testdataarraytemp[2];
testdataarray[15] = testdataarraytemp[3];
float_char(testsindatau5,testdataarraytemp);
testdataarray[16] = testdataarraytemp[0];
testdataarray[17] = testdataarraytemp[1];
testdataarray[18] = testdataarraytemp[2];
testdataarray[19] = testdataarraytemp[3];
testdataarray[20] = 0;
testdataarray[21] = 0;
testdataarray[22] = 0x80;
testdataarray[23] = 0x7f;
My_USARTSendData(testdataarray,24);
4)使用体验
感觉并没有特别的好用,发送的数据范围如果相差比较大的话,显示不怎么友好,可能使用Jscope习惯了,仅是个人意见。