学习的是精英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的库是正点原子的库,思考了好几天都没有找到解决办法,谢谢大家了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
MPU接在我的精英上面可以正常工作,而且我在这次实验里面MPU-Init函数也可以正常返回0,但我用iic读器件地址输出的是FF...如果初始化没问题我现在找不到问题在哪了
一周热门 更多>