OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 280|回复: 9

求助 关于9250硬件连接的问题

[复制链接]

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
发表于 2018-10-12 19:15:45 | 显示全部楼层 |阅读模式
1金钱
在F4的板子上读9250九轴数据 就连了VCC GND SCAL SDA 加速度和角速度都没有问题 磁力计死活读不出来 我去翻了翻429的开发手册 看到9250还有个INT引脚要连 429是连到一个外接器件上的 没说明是高还是低电平
现在看着429的程序在407上写9250 DEBUG里面磁力计都是0 特来请教各位大佬 那个INT是接高还是接低
void MPU_Get_Gyroscope(struct _gyr *Gyro)
{
uint8_t buf[6];
  MPU_Read_Len(MPU9250_ADDR,MPU_GYRO_XOUTH_REG,6,buf);

Gyro->x= (((uint16_t)buf[0] << 8) | buf[1]);
Gyro->y= (((uint16_t)buf[2] << 8) | buf[3]);
Gyro->z= (((uint16_t)buf[4] << 8) | buf[5]);
}程序应该没有问题吧


回复

使用道具 举报

  在线 

524

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
135915
金钱
135915
注册时间
2010-12-1
在线时间
1366 小时
发表于 2018-10-13 01:53:39 | 显示全部楼层
是我们开发板么?
回复

使用道具 举报

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
 楼主| 发表于 2018-10-13 14:48:24 | 显示全部楼层

用的是F407的开发板 9250是买的模块 用杜邦线连接的开发板 初始化程序是429的程序 I2C读取没有问题 加速度和角速度都读得出来 AK8963的ID也读得出来 我换了别人的9250模块 磁力计也没有读数
回复

使用道具 举报

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
 楼主| 发表于 2018-10-13 14:50:18 | 显示全部楼层

uint8_t MPU9250_Init(void)
{
        uint8_t res=0;
        I2C_Init();
        MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X80);
        delay_Nms(100);
        MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X00);
  MPU_Set_Gyro_Fsr(3);        //&Iacute;&Oacute;&Acirc;&Yacute;&Ograve;&Ccedil;&acute;&laquo;&cedil;&ETH;&AElig;÷,&iexcl;&Agrave;2000dps
        MPU_Set_LPF(42);
        MPU_Set_Accel_Fsr(0);                                                               
  MPU_Set_Rate(500);                                                                        //&Eacute;è&Ouml;&Atilde;&sup2;&Eacute;&Ntilde;ù&Acirc;&Ecirc;500Hz
  MPU_Write_Byte(MPU9250_ADDR,MPU_INT_EN_REG,0X00);   //&sup1;&Oslash;±&Otilde;&Euml;ù&Oacute;&ETH;&Ouml;&ETH;&para;&Iuml;
        MPU_Write_Byte(MPU9250_ADDR,MPU_USER_CTRL_REG,0X00);//I2C&Ouml;÷&Auml;&pound;&Ecirc;&frac12;&sup1;&Oslash;±&Otilde;
        MPU_Write_Byte(MPU9250_ADDR,MPU_FIFO_EN_REG,0XFF);
        MPU_Write_Byte(MPU9250_ADDR,MPU_INTBP_CFG_REG,0X82);//INT&Ograve;&yacute;&frac12;&Aring;&micro;&Iacute;&micro;&ccedil;&AElig;&frac12;&Oacute;&ETH;&ETH;§&pound;&not;&iquest;&ordf;&AElig;&ocirc;bypass&Auml;&pound;&Ecirc;&frac12;&pound;&not;&iquest;&Eacute;&Ograve;&Ocirc;&Ouml;±&frac12;&Oacute;&para;&Aacute;&Egrave;&iexcl;&acute;&Aring;&Aacute;&brvbar;&frac14;&AElig;
        res=MPU_Read_Byte(MPU9250_ADDR,MPU_DEVICE_ID_REG|0x80);  //&para;&Aacute;&Egrave;&iexcl;MPU6500&micro;&Auml;ID
        if(res==MPU6500_ID) //&AElig;÷&frac14;&thorn;ID&Otilde;&yacute;&Egrave;·
        {                       
                 MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X01);          //&Eacute;è&Ouml;&Atilde;CLKSEL,PLL X&Ouml;á&Icirc;&ordf;&sup2;&Icirc;&iquest;&frac14;
                 MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT2_REG,0X00);          //&frac14;&Oacute;&Euml;&Ugrave;&para;&Egrave;&Oacute;&euml;&Iacute;&Oacute;&Acirc;&Yacute;&Ograve;&Ccedil;&para;&frac14;&sup1;¤×÷
                 MPU_Set_Rate(500);                                                               //&Eacute;è&Ouml;&Atilde;&sup2;&Eacute;&Ntilde;ù&Acirc;&Ecirc;&Icirc;&ordf;500Hz   
        }else return 1;

        res=MPU_Read_Byte(AK8963_ADDR,MAG_WIA);                            //&para;&Aacute;&Egrave;&iexcl;AK8963 ID   
        if(res==AK8963_ID)
        {
                 MPU_Write_Byte(AK8963_ADDR,MAG_CNTL1,0X11);                //&Eacute;è&Ouml;&Atilde;AK8963&Icirc;&ordf;&micro;&yen;&acute;&Icirc;&sup2;&acirc;&Aacute;&iquest;&Auml;&pound;&Ecirc;&frac12;
           delay_Nms(100);
        }else return 1;

        return 0;
} 这个是我9250初始化的代码
void MPU_Get_Magnetometer(struct _meg *Meg)
{
        uint8_t buf[6];
  MPU_Read_Len(AK8963_ADDR, MAG_XOUT_L, 6, buf);
       
        Meg->x = ((uint16_t)buf[1] << 8) | buf[0];
        Meg->y = ((uint16_t)buf[3] << 8) | buf[2];
        Meg->z = ((uint16_t)buf[5] << 8) | buf[4];
       
        MPU_Write_Byte(AK8963_ADDR, MAG_CNTL1, 0X11); //AK8963&Atilde;&iquest;&acute;&Icirc;&para;&Aacute;&Iacute;ê&Ograve;&Ocirc;&ordm;ó&para;&frac14;&ETH;è&Ograve;&ordf;&Ouml;&Oslash;&ETH;&Acirc;&Eacute;è&Ouml;&Atilde;&Icirc;&ordf;&micro;&yen;&acute;&Icirc;&sup2;&acirc;&Aacute;&iquest;&Auml;&pound;&Ecirc;&frac12;

}这个是磁力计读取代码 读取频率是1000hz 因为要做姿态解算 所以频率高点
回复

使用道具 举报

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
 楼主| 发表于 2018-10-13 20:18:56 | 显示全部楼层
来点大佬看看啊 用原子的代码还翻车了?
回复

使用道具 举报

  在线 

524

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
135915
金钱
135915
注册时间
2010-12-1
在线时间
1366 小时
发表于 2018-10-14 01:31:20 | 显示全部楼层
c627933142 发表于 2018-10-13 14:50
uint8_t MPU9250_Init(void)
{
        uint8_t res=0;

直接移植,先不要改代码,直接用我们例程,看能否出我们例程的结果
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

2

主题

748

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2403
金钱
2403
注册时间
2017-10-24
在线时间
134 小时
发表于 2018-10-14 11:22:34 | 显示全部楼层
先试试例程吧。。。
如果用不到器件的中断功能的话,INT引脚可以不接的,默认接地就好。

这个磁力计的确有些不舒服,自己写的时候磁力计无应答,一般是在设置从IIC这里出现的问题,可以着重检查这个部分。
十六进制带我飞。
回复

使用道具 举报

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
 楼主| 发表于 2018-10-15 15:47:00 | 显示全部楼层
DreamWaterPro 发表于 2018-10-14 11:22
先试试例程吧。。。
如果用不到器件的中断功能的话,INT引脚可以不接的,默认接地就好。

我就是用的例成啊 I2C肯定是没有问题的 我加速度和角速度都能读得出来啊
回复

使用道具 举报

  离线 

2

主题

748

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2403
金钱
2403
注册时间
2017-10-24
在线时间
134 小时
发表于 2018-10-16 11:08:01 | 显示全部楼层
c627933142 发表于 2018-10-15 15:47
我就是用的例成啊 I2C肯定是没有问题的 我加速度和角速度都能读得出来啊

加速度计和角速度计,和磁力计不是挂在一个地方,磁力计是挂在MPU9250的从I2C控制器上了,只有将这个从I2C控制器设置为bypass模式,才可以将其“等效”挂在单片机的IIC上

另外磁力计读不出常常发生在SPI访问MPU9250的时候;IIC方式和MPU9250通信的话,例程不应该出问题啊
十六进制带我飞。
回复

使用道具 举报

  离线 

27

主题

101

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-4-21
在线时间
55 小时
 楼主| 发表于 2018-10-17 18:33:51 | 显示全部楼层
DreamWaterPro 发表于 2018-10-16 11:08
加速度计和角速度计,和磁力计不是挂在一个地方,磁力计是挂在MPU9250的从I2C控制器上了,只有将这个从I2 ...

但我确实按照例成来的 也开启了 bypass模式 但就是读不出来
回复

使用道具 举报

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

本版积分规则




关闭

正点原子STM32/FPGA资料免费洗澡上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-12-19 22:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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