接前一篇文章:ICM20948 DMP代码详解(41)
上一回完成了对inv_icm20948_read_secondary函数的解析。该函数的作用是首先选择要从中读取的从设备地址,然后选择要读取的从设备寄存器,之后设置ICM20948以采样频率(采样间隔)读取此从设备并设置读取的字节数。本回回到inv_icm20948_execute_read_secondary函数中,继续解析接下来的内容。
为了便于理解和回顾,再次贴出inv_icm20948_execute_read_secondary函数源码,在EMD-Core\sources\Invn\Devices\Drivers\ICM20948\Icm20948AuxTransport.c中,如下:
int inv_icm20948_execute_read_secondary(struct inv_icm20948 *s, int index, unsigned char addr, int reg, int len, uint8_t *d)
{
int result = 0;
result |= inv_icm20948_read_secondary(s, index, addr, reg, len);
result |= inv_icm20948_secondary_enable_i2c(s);
inv_icm20948_sleep_us(SECONDARY_I