学习的是精英STM32F103ZET6的mpu6050例程 想要移植到STM32F103C8上边 使用的是HAL库
iic的库是自己写的 可以保证正确性
正点原子的例程移植到HAL库的F103C8十分麻烦 于是打算自己用iic库函数读取数据
在CUBEMX生成文件并初始化mpu6050完成之后
我将对应的vcc gnd scl sda连接到stm32f103c8上边 AD0管脚没有接
最简单的我先读取了MPU6050陀螺仪储存数据的寄存器里面的值并用串口发送到电脑
电脑接受的x轴 y轴 z轴的数据一直都是18 18 02没有变化
在论坛里面找了很久试了很多办法都没有得到解决
希望用过这个模块的同学能帮我看看哪里出现了问题 感谢
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_I2C1_Init();
MX_USART1_UART_Init();
uint8_t abc[3]={0,1,2};
MPU_Init();
float pitch,roll,yaw;
short aacx,aacy,aacz;
short gyrox,gyroy,gyroz;
short temp;
uint8_t gyro[3]={gyrox,gyroy,gyroz};
uint8_t accel[3]={aacx,aacy,aacz};
u8 temp0[1]={temp};
u8 buff[6];
while (1)
{
i2c_read_buf(buff,1,0x43);
i2c_read_buf(buff+1,1,0x44);
i2c_read_buf(buff+2,1,0x45);
i2c_read_buf(buff+3,1,0x46);
i2c_read_buf(buff+4,1,0x47);
i2c_read_buf(buff+5,1,0x48);
gyrox=((uint16_t)buff[0]<<8)|buff[1];
gyroy=((uint16_t)buff[2]<<8)|buff[3];
gyroz=((uint16_t)buff[4]<<8)|buff[5];
if(MPU_Init()==0)
{HAL_UART_Transmit(&huart1,gyro,3,100);}
HAL_Delay(200);
}
这里是主函数,MPU的库是正点原子的库,思考了好几天都没有找到解决办法,谢谢大家了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
IIC用的软件模拟 是自己写的库 我现在能从寄存器里面读到数据 是不是说明iic通信没错? 但我读器件信息读出来不是0x68而是FF 问题是出在mpu的初始化上面吗? 我打算先读出基本数据 再用DMP算出那三个角度
一周热门 更多>