打印
[MM32硬件]

MM32F3270读写BMI270

[复制链接]
1713|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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);
    }
}


使用特权

评论回复
沙发
小小蚂蚁举千斤| | 2025-1-22 22:58 | 只看该作者
BMI270 IMU将精确的加速度和角速率测量与智能片上运动触发中断功能相结合。

使用特权

评论回复
板凳
OKAKAKO| | 2025-1-23 08:14 | 只看该作者
非常不错的IIC通讯教程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1372

主题

13481

帖子

27

粉丝