OpenEdv-开源电子网

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

MPU6050的程序问题

[复制链接]

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
发表于 2016-11-29 16:10:51 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=applescript,true]u8 MPU_Read_Byte(u8 reg)
{
                u8 res;
    MPU_IIC_Start();
                MPU_IIC_Send_Byte((MPU_ADDR<<1)|0);//发送器件地址+写命令        
                MPU_IIC_Wait_Ack();                //等待应答
    MPU_IIC_Send_Byte(reg);        //写寄存器地址
    MPU_IIC_Wait_Ack();                //等待应答
    MPU_IIC_Start();
                MPU_IIC_Send_Byte((MPU_ADDR<<1)|1);//发送器件地址+读命令        
    MPU_IIC_Wait_Ack();                //等待应答
                res=MPU_IIC_Read_Byte(0);//读取数据,发送nACK
    MPU_IIC_Stop();                        //产生一个停止条件
                return res;               
}
[/mw_shl_code]
其中这两句MPU_IIC_Send_Byte((MPU_ADDR<<1)|0);//发送器件地址+写命令
MPU_IIC_Send_Byte((MPU_ADDR<<1)|1);//发送器件地址+读命令
函数参数当中的((MPU_ADDR<<1)|0)与((MPU_ADDR<<1)|1)怎么理解呀?0,1怎么和读写命令相关了呢?


最佳答案

查看完整内容[请看2#楼]

还是先看I2C时序吧,最后一bit就是标记对I2C从设备读还是写操作的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

47

帖子

1

精华

高级会员

Rank: 4

积分
675
金钱
675
注册时间
2014-9-17
在线时间
89 小时
发表于 2016-11-29 16:10:52 | 显示全部楼层
还是先看I2C时序吧,最后一bit就是标记对I2C从设备读还是写操作的。
当你的才华还撑不起你的野心时你就应该静下心来学习。当你的经济还撑不起你的梦想时,你就应该踏实的去工作。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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