1 简 介
最近,想学角度融合算法在网上买一个JY61的模块。他们家的模块用起来还不错。模块分为串口通讯和IIC通讯的。串口读取数据他们家有例程,我就不说了。想分享给大家这个模块的IIC是怎么去读取MPU6050芯片数据的。
想要读取MPU6050芯片,其实就是通过IIC去操作读取寄存器。大致过程就是STM32和MPU6050先建立好IIC通讯。再去初始化MPU6050芯片。然后单片机再去读取寄存器,就能把数据读取出来了。
2 配置32单片机的IIC引脚
根据你32单片机的原理图,找到你的IIC引脚。
a 时钟RCC的配置,以我自己写的为例子。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_12C1,ENABLE);
b GPIO口的配置
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;
GPIO_Init(GPIOB,&GPIO_InitStructure);
注意:SCL和SDA都得接上两个4.7K的电阻。不然你是读取不到MPU6050的数据。
c 32的IIC的配置
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD