昨天完成了ADXL345的中断数据读取,今天就想着把读取的数据通过串口输出到电脑上,并用MATLAB看一下值的变化趋势
刚开始读不出数据的时候,一种从程序中找问题,后来才发现stm32的tx引脚没有与串口的rx相连,tx的引脚可以从cube中查看
本次使用的是PA9
程序中的语句是很简单的
先新建一个CUbe工程,添加USART1,然后将以前写的程序复制过来(貌似是不能直接打开以前的cube工程添加usart,会使你自己写的程序丢掉)
在主函数里加入 HAL_UART_Transmit(&huart1,buf,6,0xffff); 这么一句简单的命令就够了。
这期间还遇到很多问题,在主函数中没有加入usart的初始化;串口助手中的波特率没有更改
自己写了一段MATLAB的程序
clear all;
a=textread('ADXL345数据.txt','%s');
b=reshape(a,39,6);//我在上一句读入字符后得到的是n*1的矩阵,所以要改回来
for i=1:39
for j=1:3
c(i,j)=strcat(b(i,2*j),b(i,2*j-1));//为了将0x32,0x33中的十六进制数据转化为十进制的数据
end
end
d=hex2dec(c);
e=reshape(d,39,3);
x=e(:,1);
y=e(:,2);
z=e(:,3);
plot(x,'r');
hold on
plot(y,'b');
hold on
plot(z,'y')
不知道今天这样得到的数据是否正确,做点总结记录一下,明天再验证一下。