这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 遇到问题:利用串口打印时,数据丢失?

共4条 1/1 1 跳转至

遇到问题:利用串口打印时,数据丢失?

助工
2015-08-15 23:32:11     打赏

遇到问题:利用串口打印时,数据丢失?

在版主passoni的DMP移植程序里添加了读取横滚角、航向角和温度值,并用串口打印出来。

结果如下:如下所示,打印几次数据就会出现其中一次俯仰角、横滚角、航向角数据丢失,只打印出温度值?

10.474207

-1.122749

-29.808819

39.924118


10.473424

-1.123999

-29.808847

39.921177


10.472758

-1.126969

-29.809134

39.894707


39.903530


10.438786

-1.190631

-29.821899

39.900589

主程序的while(1)改为

while(1)
{
Read_DMP();
Read_Temperature();
printf("\r\n\r\n\r\n\r\n");

在void Read_DMP(void)里添加读取横滚角、航向角并打印出来的程序

//计算得到俯仰角/横滚角/航向角

Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; //俯仰角

Roll  = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // 横滚角

Yaw   = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3; //航向角


printf("%f\r\n %f\r\n %f\r\n",Pitch,Roll,Yaw);


在int Read_Temperature(void)修改读取温度的公式并打印出来。

Temp=36.53+Temp/340;

//Temp=(36.53+Temp/340)*10;


printf("%f\r\n",Temp);

return (int)Temp;




助工
2015-08-16 13:05:01     打赏
2楼
改变波特率看看

菜鸟
2015-08-19 08:03:55     打赏
3楼
分三个printf就不会了,或者自己写个类printf函数

专家
2015-08-21 11:59:08     打赏
4楼
程序问题。可能阻塞了

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]