野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 273|回复: 1

stm32通过iic读取qmc5883数据的问题

[复制链接]
发表于 2023-11-20 20:38:14 | 显示全部楼层 |阅读模式
通讯完后读取数据只有x轴有数据,y和z数据不变,一直都是-1。有没有大佬知道这是什么情况。
//iic连续读

uint8_t QMC5883p_Read_Len(uint8_t reg,uint8_t len,uint8_t *buf)
{
        iic_start();
        iic_send_byte(QMC5883P_WRITE_ADDR);//发送器件地址+写命令       
        if(iic_wait_ack())
        {
                iic_stop();
                printf("无从设备应答信号写3");
        }
  iic_send_byte(reg);               //发送存储单元地址,从0x01开始       
        if(iic_wait_ack())
        {
                iic_stop();
                printf("无从设备应答信号写3");
        }
  iic_start();
        iic_send_byte(QMC5883P_READ_ADDR); //发送设备地址+读
  if(iic_wait_ack())
        {
                iic_stop();
                printf("无从设备应答信号写3");
        }
        while(len)
        {
                if(len==1)*buf=iic_read_byte(1);//读数据,发送nACK
                else *buf=iic_read_byte(0);                  //读数据,发送ACK  
                len--;
                buf++;
        }   
  iic_stop();         //产生IIC停止信号
        return 0;       
}


//qmc5883p初始化
//用来衡量磁感应强度大小的单位是Tesla或者Gauss(1Tesla=10000Gauss)
void qmc5883p_init()
{
        Single_Write_QMC5883(0x29,0x06);        //定义XYZ方向
        Single_Write_QMC5883(0x0B,0x0C);  //2Guass:0x0C  8Guass:0x08  12Guass:0x04  30Guass:0x00      
        Single_Write_QMC5883(0x0A,0xCD);        //标准模式,200HZ
}

//真实数据获取
void QMC5883p_get_data(double *actual_x,double *actual_y,double *actual_z)
{
        uint8_t buf[6],res;
        int16_t x,y,z;
        res=QMC5883p_Read_Len(QMC5883P_DATA_OUT_X_LSB_REG,6,buf);
        if(res==0)
        {
                  x=((int16_t)buf[1]<<8)|buf[0];  
                  y=((int16_t)buf[3]<<8)|buf[2];  
            z=((int16_t)buf[5]<<8)|buf[4];
                 printf("寄存器X:%d;寄存器Y:%d寄存器z:%d\r\n",x,y,z);
        }        
        *actual_x = (double)(((double)x / 32768) * 2000);
        *actual_y = (double)(((double)y / 32768) * 2000);
        *actual_z = (double)(((double)z / 32768) * 2000);
}

YZ轴数据不变

YZ轴数据不变

qmc5883p.rar

3.66 KB, 下载次数: 2

回复

使用道具 举报

 楼主| 发表于 2023-11-20 20:40:24 | 显示全部楼层
有没有大佬提供一下思路
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-29 09:29 , Processed in 0.156232 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表