接前一篇文章:ICM20948 DMP代码详解(35)
上一回讲到了icm20948_sensor_setup() ---> inv_icm20948_initialize_auxiliary函数 ---> inv_icm20948_set_slave_compass_id函数,本回开始,就对于inv_icm20948_set_slave_compass_id函数进行解析。为了便于理解和回顾,再次贴出该函数源码,在EMD-Core\sources\Invn\Devices\Drivers\ICM20948\Icm20948DataBaseDriver.c中,如下:
int inv_icm20948_set_slave_compass_id(struct inv_icm20948 *s, int id)
{
int result = 0;
(void)id;
//result = inv_icm20948_wakeup_mems(s);
//if (result)
// return result;
inv_icm20948_prevent_lpen_control(s);
activate_compass(s);
inv_icm20948_init_secondary(s);
// Set up the secondary I2C bus on 20630.
inv_icm2094