小弟最近想用hmc5883l模块来校准小船的航向,用的stm32f407板子,iic通信,通信已经建立起来了,可以通过串口打印出数据了,但是觉得数据不太清楚是什么意思,拿着模块变换一下角度,数据确实是在变化,但是有些地方的数据出现了重复,有些地方的相邻数据变化太快,一时间不知道到底怎么样去根据数据换算成方向,
网上有这样的一段代码:
// if((angle < 22.5) || (angle > 337.5 ))
// printf("South %lf
",angle);
// delay_ms(50);
// if((angle > 22.5) && (angle < 67.5 ))
// printf("South-West %lf
",angle);
// delay_ms(50);
// if((angle > 67.5) && (angle < 112.5 ))
// printf("West %lf
",angle);
// delay_ms(50);
// if((angle > 112.5) && (angle < 157.5 ))
// printf("North-West %lf
",angle);
// delay_ms(50);
// if((angle > 157.5) && (angle < 202.5 ))
// printf("North %lf
",angle);
// delay_ms(50);
// if((angle > 202.5) && (angle < 247.5 ))
// printf("NorthEast %lf
",angle);
// delay_ms(50);
// if((angle > 247.5) && (angle < 292.5 ))
// printf("East %lf
",angle);
// delay_ms(50);
// if((angle > 292.5) && (angle < 337.5 ))
// printf("SouthEast %lf
",angle);
// delay_ms(50);
但是实测方向不对啊。。。
求助大家,最后读取出来的数据是怎么处理的呢。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>