HMC5883源碼QMC5883L源碼,基于STM32\Arduino
51hei.png (49.37 KB, 下載次數: 74)
下載附件
2022-4-18 18:31 上傳
51hei.png (173.85 KB, 下載次數: 70)
下載附件
2022-4-18 18:32 上傳
51hei.png (67.85 KB, 下載次數: 65)
下載附件
2022-4-18 18:32 上傳
QMC5883 HMC5883 寄存器對比以及參考設置
QMC5883 HMC5883 寄存器對比以及參考設置.png (125.07 KB, 下載次數: 59)
下載附件
2022-4-18 18:29 上傳
QMC5883 HMC5883 寄存器對比以及參考設置2.png (123.85 KB, 下載次數: 67)
下載附件
2022-4-18 18:29 上傳
單片機源程序如下:
- #include "HMC5883L.h"
- #include "I2C.h"
- #include "delay.h"
- void hmc_write_reg(u8 reg,u8 data)
- {
- IIC_Start();
- IIC_Send_Byte(WRITE_ADDRESS);
- IIC_Wait_Ack();
- IIC_Send_Byte(reg);
- IIC_Wait_Ack();
- IIC_Send_Byte(data);
- IIC_Wait_Ack();
- IIC_Stop();
- //delay_ms(5);
- }
- u8 hmc_read_reg(u8 reg)
- {
- u8 data;
- IIC_Start();
- IIC_Send_Byte(WRITE_ADDRESS);
- IIC_Wait_Ack();
- IIC_Send_Byte(reg);
- IIC_Wait_Ack();
- IIC_Stop();
- IIC_Start();
- IIC_Send_Byte(READ_ADDRESS);
- IIC_Wait_Ack();
- data=IIC_Read_Byte();
- IIC_NAck();
- IIC_Stop();
- return data;
- }
- /*void hmc_read_XYZ(u16* data)
- {
- u8 temp;
- u8 i;
- IIC_Start();
- IIC_Send_Byte(WRITE_ADDRESS);
- IIC_Wait_Ack();
- IIC_Send_Byte(DATAX_M);
- IIC_Wait_Ack();
- IIC_Stop();
- IIC_Start();
- IIC_Send_Byte(READ_ADDRESS);
- IIC_Wait_Ack();
- for(i=0;i<3;i++)
- {
- temp=IIC_Read_Byte();
- IIC_Ack();
- *data++=temp*256+IIC_Read_Byte();
- IIC_Ack();
- }
- IIC_Stop();
- }*/
- void hmc_read_XYZ(short int *data)
- {
- u16 temp;
- temp=hmc_read_reg(DATAX_M);
- *data++=(temp<<8)+hmc_read_reg(DATAX_L);
- temp=hmc_read_reg(DATAY_M);
- *data++=(temp<<8)+hmc_read_reg(DATAY_L);
- temp=hmc_read_reg(DATAZ_M);
- *data++=(temp<<8)+hmc_read_reg(DATAZ_L);
- }
- void hmc_init(void)
- {
- hmc_write_reg(CONFIGA,0x14);
- hmc_write_reg(CONFIGB,0x80);
- hmc_write_reg(MODE,0x00);
- delay_ms(10);
- }
復制代碼
51hei.png (6.82 KB, 下載次數: 62)
下載附件
2022-4-18 16:18 上傳
所有資料51hei附件下載:
hmc5883電子羅盤.7z
(3.44 MB, 下載次數: 57)
2022-4-18 17:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|