|
本帖最后由 Edwardwei 于 2015-3-19 02:22 编辑
int main(void)
{
u8 result;
u8 buff[6];
delay_init();
LED_Init();
uart_init(38400);
i2cInit();
delay_ms(300);
MPU_Check();
result=mpu_init();
if(!result)
{
printf("mpu_initialization complete!\n");
if(!mpu_set_bypass(1)) printf("mpu_set_bypass_mode complete!\n");
else printf("mpu_set_bypass_mode error!\n");
}
delay_ms(500);
MPU_Check();
}
利用的是官方的DMP库来驱动MPU的,在mpu_init()里有唤醒芯片,然后mpu_set_bypass()我看到确实有设置int_pin为0x02,设置user_ctl为0x00,而且也打印出了mpu_set_bypass_mode complete。
我延迟500ms后再check,还是能读取到MPU的Who am I 寄存器的值,得到0x68,不知道这是否进入了Bypass了没有?
然后就想读取hmc5883l,可是通过同一个iic代码,与hmc5883l通信不成功,发送数据后得不到应答信号。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|