陀螺仪HMC5883L
- #include "stm32f10x.h"
- #include "I2C.h"
- #include "HMC5883L.h"
- #include "delay.h"
- #include "math.h"
- #include "usart.h"
- short int data[3];
- double angle,m,n;
- int main(void)
- {
- delay_init();
- i2c_init();
- hmc_init();
- uart_init(9600);
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- while(1)
- {
- hmc_read_XYZ(data);
- angle=atan2((double)data[2],(double)data[0])*(180 / 3.14159265)+180;
- delay_ms(200);
- m=n=angle;
- while(-90<=m-n<=90)//90是角度,不准确可以稍微调一下
- {
- //这里是旋转的函数
- hmc_read_XYZ(data);
- angle=atan2((double)data[2],(double)data[0])*(180 / 3.14159265)+180;
- delay_ms(200);
- n=angle;
- }
- // USART_SendData(USART1, angle);//向串口1发送数据
- // while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
-
- }
- }
复制代码
全部资料下载地址:
HMC5883L.rar
(312.59 KB, 下载次数: 170)
|