STM32硬件I2C做从机,新手求助

2019-12-11 18:39发布

各位大佬好!我是个新手,最近调试STM32 F746硬件I2C的从机模式,用CubeMX配置的PB8,PB9分别为SDA,SLC, 然后从机地址设置为30,I2C初始化如下
/* I2C1 init function */
static void MX_I2C1_Init(void)
{

  hi2c1.Instance = I2C1;
  hi2c1.Init.Timing = 0x20404768;
  hi2c1.Init.OwnAddress1 = 60;
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0;
  hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if (HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Configure Analogue filter
    */
  if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Configure Digital filter
    */
  if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

}

用arduino due做主机,寻址寻不到,实物接线图,上传了,我感觉应该没问题,不知道是什么原因...急求各位大佬指出我的错误
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
sme
1楼-- · 2019-12-12 16:17
接了上拉电阻没?
ujewm
2楼-- · 2019-12-12 17:19
 精彩回答 2  元偷偷看……
ujewm
3楼-- · 2019-12-12 22:29
阿豪博士 发表于 2019-4-13 08:17
建议楼主 赶紧买一个 金沙滩的 逻辑分析仪!

如果手头富裕 最好的 5016

机械出身的我,表示对电子的东西我头大
ujewm
4楼-- · 2019-12-13 02:55
sme 发表于 2019-4-13 10:16
接了上拉电阻没?

Arduino Due 20 21作为I2C口自带有上拉电阻不用接,现在能通讯了,就是通讯一秒就挂了,我估计是因为我数据变量弄错从而导致爆了
ujewm
5楼-- · 2019-12-13 04:44
想问一下各位大佬,STM32这边I2C接收数据的话具体是怎么个过程?我对数据这块不了解,比如说我Arduino这边想传个uint16过去,必须先在arduino这边先拆成两个uint8传到STM32,然后在STM32这边在组合起来成uint16对吧?但是STM32这边接收数据之后是怎么存的呢?这个我不清楚,有没有人帮解答一下

一周热门 更多>