1.使用串口将多路传感器数据导入csv表格
-
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)。通过在打印文本的时候加入“ ,”或者“ /r/n ”可以实现换列和换行。
-
使用串口助手接受数据到文件,文件命名为XXX.csv。
-
STM32单片机端程序的处理其实就是通过合理的运用分隔符实现表格的合理排序,便于下一步的导出:
USART2_printf("%d,",ADC_DMA_IN[0]);
USART2_printf("%d,",ADC_DMA_IN[1]);
USART2_printf("%d\r\n",ADC_DMA_IN[2]);
这里我使用了printf重定向,平时使用的话只需使用printf即可打印,ADC与DMA不详谈。关键在于“%d,”,“%d,”,“%d\r\n”这几个字符,根据第一小点的内容,此代码可以将传感器的值分别显示在第1-3列,生成csv文件的效果如下:
2.导入matlab并绘图
- 数据处理
使用csvread语句,csvvred(’.csv文件位置’,m,n),读取第m行第n列以下的数据。再通过XXX(:,n)读取第n列的数据。 - 绘图
使用length(XXX)取字符长度。通过hold锁定绘图与plot()命令绘制出传感器曲线。
%实现代码
Y = csvread('C:\Users\生活在别处\Desktop\1.csv');%只需修改csv文件位置
Y1=Y(:,1);
Y2=Y(:,2);
Y3=Y(:,3);
X=1:length(Y1);
hold;
plot(X,Y1);
plot(X,Y2);
plot(X,Y3);