STM32L053 I2C 与 LIS3DH 传感器的问题

STM32L053 I2C 与 LIS3DH 传感器的问题

我正在尝试从 LIS3DH 传感器恢复数据,我发现YouTube 上的此教程

在教程中,人们使用以下方法来查看传感器是否可以使用了:

if(HAL_I2C_IsDeviceReady(&hi2c1,SLAVEI2C_ADD,10,100)==HAL_OK)

但是,当我建立连接并运行程序时,我什么也看不到。

我按如下方式连接传感器:

  • 传感器-> STM32
  • SDA -> SDA/D14 (上拉 10kOhms)
  • SCL -> SCL/D15 (上拉 10kOhms)
  • SDO-> 3.3V
  • CS-> 3.3V
  • GND->GND
  • Vcc->3.3v

以下代码是我用来尝试了解传感器状态的代码。

#include "main.h"

I2C_HandleTypeDef hi2c1;

#define SLAVEI2C_ADD 0x19

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C1_Init(void);

int main(void)
{

  HAL_Init();

  SystemClock_Config();

  __HAL_RCC_GPIOB_CLK_ENABLE();
  MX_GPIO_Init();
  __HAL_RCC_I2C1_CLK_ENABLE();
  MX_I2C1_Init()


  HAL_Delay(1000);
  if(HAL_I2C_IsDeviceReady(&hi2c1,SLAVEI2C_ADD,10,100)==HAL_OK)
  {
    HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
  }

  while (1)
  {

  }

}

我发现的错误是与传感器通信的等待时间即将用完HAL_I2C_ERROR_TIMEOUT。我不知道这可能是什么错误。你知道可能发生了什么吗?

CUBEMX 中的配置

相关内容