iwannamoney_ 2021-05-15 17:56 采纳率: 0%
浏览 134

stm32硬件i2c无法读取mpu6050

f103硬件i2c无法读取mpu6050原始数据,原因在于MPU_Init函数,在main中加入init函数,串口也无法正常工作,注释之后便可正常使用串口;

当使用硬件i2c读取oled时,故意将地址写错也无法正常使用串口

附上源码,恳请指正

static void I2C_WriteByte(uint8_t addr,uint8_t data)
{
	
	while( I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY) );   //总线忙为1,空闲为0
	
	I2C_GenerateSTART(I2C1, ENABLE);  //起始信号
	while( !I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT) ); //EV5, SB(startbit)=1
	
	I2C_Send7bitAddress(I2C1, (MPU_ADDR<<1), I2C_Direction_Transmitter); //发送从设备地址,0x68
	while( !I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) ); //EV6,ADDR=1
	
	I2C_SendData(I2C1, addr);   //从设备中的内存地址
	while( !I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED) );//EV8,TxE=1
	
	I2C_SendData(I2C1, data);  //发送数据
	while( !I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED) );//EV8,TxE=1
	
	I2C_GenerateSTOP(I2C1, ENABLE);  //停止信号
}



uint8_t MPU6050_Init(void)
{
	uint8_t id[1]={1};

	I2C_WriteByte(MPU_PWR_MGMT1_REG,0x80); //reset mpu
	Delay_SysTic_ms(100);
	I2C_WriteByte(MPU_PWR_MGMT1_REG,0x00); //wake up
	
	I2C_WriteByte(MPU_GYRO_CFG_REG,0x18); //3<<3 2000°/s
	I2C_WriteByte(MPU_ACCEL_CFG_REG,0x00); //0<<3 ±2g
	I2C_WriteByte(MPU_SAMPLE_RATE_REG,0x13);  //sample fre 50hz
	I2C_WriteByte(MPU_CFG_REG,0x04);     //DLPF 25hz
	I2C_WriteByte(MPU_INT_EN_REG,0x00);  //disable int
	I2C_WriteByte(MPU_USER_CTRL_REG,0x00); //disable i2c master mode
	I2C_WriteByte(MPU_INTBP_CFG_REG,0x80); //int_level low
	
	I2C_ReadData(MPU_DEVICE_ID_REG,id,1);  //read id
	I2C_WriteByte(MPU_PWR_MGMT1_REG,0x01);  //PLL with x axis
	I2C_WriteByte(MPU_PWR_MGMT2_REG,0x00);  //enable all 
	
	return *id;
}

init函数

 

main.c

int main(void)
{
	I2C_GPIO_Config();
	USART1_Config();
	uint8_t id=MPU6050_Init();
	char id_buf[1];
	

	printf("MPU6050 Test!\n");
	printf("id = %u\n",id);
	
	while(1)
	{
		
	}
	
} 
  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-05-17 18:28
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

悬赏问题

  • ¥15 grbl的G92修改MPos的问题。
  • ¥15 vue2中,Ant Design Pro s-table中,使用服务端排序怎么做
  • ¥15 阿里巴巴国际站的商品详细页如何做到图文分离
  • ¥15 根据质因子个数求因式个数
  • ¥15 matlab模糊控制隶属函数设计
  • ¥15 DB2的REPLACE函数报错求解
  • ¥45 C++上传文件到SFTP
  • ¥20 组态王 海康Vision Master
  • ¥15 思科WS-C4503-E核心交机
  • ¥15 批量提取WORD信息到EXCEL