OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8081|回复: 9

MPU6050 模拟I2C问题

[复制链接]

6

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-10-29 10:20:24 | 显示全部楼层 |阅读模式
最近买了个MPU6050,改了下原子的模拟I2C。
用的还是PC11 12.
一样的代码在51板子上是可以正确读出芯片内容的,但是在STM32 MINI板子上死活读不出来。
串口打印的三个加速度都是0,读器件ID也是0.
while(1)
{
Add=IIC_Read_One_Byte(WHO_AM_I);//这里的ID和下面的xyz打印出来一直是0.
x=Get_Data(ACCEL_XOUT_H);
y=Get_Data(ACCEL_YOUT_H);
z=Get_Data(ACCEL_ZOUT_H);
    
                //串口打印,省略代码
if(USART_RX_STA&0x80)
{   
……
}else
{
times++;
if(times%200==0)
{
printf("\nx=%d\ny=%d\nz=%d\n",x,y,z); 
printf("ID=%x\r\n",Add); 
}
if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
delay_ms(10);
}
}  

IIC_Read_One_Byte的定义如下:
//读MPU60X0
u8 IIC_Read_One_Byte(u8 regaddr)
{
u8 REG_data=0;
IIC_Start();                   //起始信号
IIC_Send_Byte(SlaveAddress);    //发送设备地址+写信号
IIC_Send_Byte(regaddr);     //发送存储单元地址,从0开始
if(!IIC_Wait_Ack()){IIC_Stop();return 255;}
IIC_Start();                   //起始信号
IIC_Send_Byte(SlaveAddress+1);  //发送设备地址+读信号
if(!IIC_Wait_Ack()){IIC_Stop();return 255;}//这里的应答都是可以收到的
REG_data=IIC_Read_Byte();       //读出寄存器数据,并且不应答
IIC_NAck(); //不回应
IIC_Stop();                    //停止信号
return REG_data;
}  



折腾2天了,求解。。。。
~~~~ 欢迎讨论,拒绝谩骂 ~~~~
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-29 11:58:57 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-29 12:14:31 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2013-10-29 12:50:36 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢谢原子和xiaoyan。我发现了……问题解决方案就是重启板子……让MPU重置。。。。。。。。。。。
IIC的代码原样移植原子的就行。
~~~~ 欢迎讨论,拒绝谩骂 ~~~~
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-3-19 13:11:36 | 显示全部楼层
回复【4楼】兰斯洛:
---------------------------------
断电后上电?
合肥-文盲
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-6-11
在线时间
0 小时
发表于 2014-6-23 23:08:59 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥,如果需要控制8个6050  I2C怎么接
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-24 01:46:10 | 显示全部楼层
一个IIC最多挂2个6050吧,要4个IIC接口。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2014-11-26 17:09:17 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
有固件库版本的吗?
学习!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-26 23:26:31 | 显示全部楼层
回复【8楼】q27488:
---------------------------------
那代码不是我写的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-6-22
在线时间
0 小时
发表于 2015-10-2 15:55:23 | 显示全部楼层
我也遇到了跟楼主同样的问题,郁闷啊!而且已经参考了好几个人的程序了,没有找到一个,真正适合我的。我想要一个软件模拟I2C,只需要给我原始数据就行。我不想用mpu6050的DMP.我想自己用用别的方法。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 12:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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