本帖最后由 627933142 于 2018-9-23 11:04 编辑
最近在用TM4C123的硬件I2C读MPU9250的九轴数据 设备ID已经读对了 各个寄存器的值都能都出来 而且都是对的 但是连续读加速度计和角速度计磁力计就没有数据 全是0 想让大家看看我的连续读取函数有没有问题 并请大家分析分析原因
void MPU_Read_Len(uint8_t addr,uint8_t reg,uint8_t len,uint8_t *buf)
{
uint32_t DataNumber;
uint32_t MsterCMD;
I2CMasterSlaveAddrSet(I2C1_BASE,addr,false);
I2CMasterDataPut(I2C1_BASE,reg);
I2CMasterControl(I2C1_BASE,I2C_MASTER_CMD_SINGLE_SEND);
while(I2CMasterBusy(I2C1_BASE));
I2CMasterSlaveAddrSet(I2C1_BASE,addr,true);
for(DataNumber=0;DataNumber<len;DataNumber++)
{
if(DataNumber==0)
{
MsterCMD=I2C_MASTER_CMD_BURST_RECEIVE_START;
}
else if(DataNumber==(len-1))
{
MsterCMD=I2C_MASTER_CMD_FIFO_BURST_RECEIVE_FINISH;
}
else
{
MsterCMD=I2C_MASTER_CMD_BURST_RECEIVE_CONT;
}
I2CMasterControl(I2C1_BASE,MsterCMD);
while(I2CMasterBusy(I2C1_BASE));
*buf=I2CMasterDataGet(I2C1_BASE);
buf++;
}
}
新人芯币就这么点啊
一周热门 更多>