你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F407 Discovery + MPU6050 I2C 不工作

[复制链接]
yygk 提问时间:2015-10-20 15:33 /
本帖最后由 yygk 于 2015-10-20 15:41 编辑

各位大侠,
最近接触STM32,想着把MPU6050这种小板接上来小练习一下,但是I2C一直调不通,不知为何,老是AF错误。
Transmit一开始就fail了,老是报AF错误HAL_I2C_ERROR_AF。有玩过的不?

上来读一下deviceID =  MPU6050_Read_1BYTE((0x68<<1), 0x75);

unsigned char MPU6050_Read_1BYTE(unsigned char SlaveAddress,unsigned char REG_Address) {
   HAL_StatusTypeDef status;
   uint8_t data;

status = HAL_I2C_Master_Transmit(&hi2c1, SlaveAddress, ®_Address, 1, 1000);
if(status != HAL_OK) {
   printf("I2C transmit error\n\r");
}

   status = HAL_I2C_Master_Receive(&hi2c1, SlaveAddress, (uint8_t*)&data, 1, 1000);
if(status != HAL_OK) {
   printf("I2C read 1 byte error\n\r");
}

return (unsigned char)data;
}
这个是I2C配置:
void MX_I2C1_Init(void)
{
  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 100000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
  hi2c1.Init.OwnAddress1 = 0;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
  HAL_I2C_Init(&hi2c1);
}

void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
{
  GPIO_InitTypeDef GPIO_InitStruct;
  if(hi2c->Instance==I2C1)
  {
  /* USER CODE BEGIN I2C1_MspInit 0 */
  /* USER CODE END I2C1_MspInit 0 */
  
    /**I2C1 GPIO Configuration   
    PB6     ------> I2C1_SCL
    PB7     ------> I2C1_SDA
    */
    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
    GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    /* Peripheral clock enable */
    __I2C1_CLK_ENABLE();
  /* USER CODE BEGIN I2C1_MspInit 1 */
  /* USER CODE END I2C1_MspInit 1 */
  }
}

小板子图片就不上了,用的比较常见的淘宝小板,接口如下:
VCC 3.3v
GND 接地
SCL I2C 的时钟
SDA I2C 数据
XDA 可不接
XCL 可不接
AD0 mpu6050 地址选择(这里接地了)




收藏 评论4 发布时间:2015-10-20 15:33

举报

4个回答
你好我好大家好! 回答时间:2015-10-20 17:24:55
alisa123 回答时间:2015-10-20 19:09:02
没有过F4的,F030的I2C刚调试过,感觉还行!
wambob 回答时间:2015-10-20 21:07:38
用模拟I2C吧
yygk 回答时间:2015-10-22 09:29:22

这个板子的I2C我用过,同样的配置,接口;接的是一个别的设备,都工作的好好的。。。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版