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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版