BMI270 超低功耗的IMU基于博世的MEMS工艺技术,而且大大提升了加速度计的偏移和灵敏度性能。另外,BMI270包含直观的手势、情境和活动识别功能,并集成了即插即用计步器,特别适合可穿戴设备、可听戴设备、增强现实和虚拟现实(AR/VR)等应用。
BMI270 IMU将精确的加速度和角速率测量与智能片上运动触发中断功能相结合。6轴传感器将16位三轴陀螺仪和16位三轴加速度计组合在一个紧凑的2.5 x 3.0 x 0.8 mm3 LGA封装中。
void I2C_Configure(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
I2C_InitTypeDef I2C_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1ENR_I2C1, ENABLE);
I2C_DeInit(I2C1);
I2C_StructInit(&I2C_InitStruct);
I2C_InitStruct.I2C_Mode = I2C_Mode_MASTER;
I2C_InitStruct.I2C_Speed = I2C_Speed_STANDARD;
I2C_InitStruct.I2C_ClockSpeed = 100000;
I2C_Init(I2C1, &I2C_InitStruct);
I2C_Send7bitAddress(I2C1, EEPROM_I2C_ADDRESS);
RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB, ENABLE);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_4);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_4);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_OD;
GPIO_Init(GPIOB, &GPIO_InitStruct);
I2C_Cmd(I2C1, ENABLE);
}
/***********************************************************************************************************************
* @brief
* @NOTE none
* @param none
* @retval none
*********************************************************************************************************************/
void I2C_TxData_Polling(uint8_t *Buffer, uint8_t Length)
{
uint8_t i = 0;
for (i = 0; i < Length; i++)
{
I2C_SendData(I2C1, Buffer);
while (RESET == I2C_GetFlagStatus(I2C1, I2C_STATUS_FLAG_TFE))
{
}
}
}
/***********************************************************************************************************************
* @brief
* @note none
* @param none
* @retval none
*********************************************************************************************************************/
void I2C_RxData_Polling(uint8_t *Buffer, uint16_t Length)
{
uint8_t i = 0;
for (i = 0; i < Length; i++)
{
I2C_ReadCmd(I2C1);
while (RESET == I2C_GetFlagStatus(I2C1, I2C_STATUS_FLAG_RFNE))
{
}
Buffer = I2C_ReceiveData(I2C1);
}
}
|