[STM32F1] STM32和AS7262传感器之间建立通信失败

[复制链接]
472|6
梧桐uuu 发表于 2025-9-14 09:46 | 显示全部楼层 |阅读模式
用STM32 Discovery开发板连接AS7262传感器。AS7262传感器的数据手册https://ams.com/en/as7262

无法通过I2C通信获取数据。代码如下。


#define AS7262_ADD 0x93
#define STATUS_REG 0x00
#define WRITE_REGT 0x01
#define READ_REGT 0x02
#define TX_VALID 0x02
#define RX_VALID 0x01

while(1){
          HAL_I2C_Mem_Read(&hi2c1, AS7262_ADD, STATUS_REG, 1, &status, 1, 100);
          HAL_I2C_Mem_Read(&hi2c1, AS7262_ADD, TX_VALID, 1, &tx_check, 1, 100);
          if((status && tx_check) == 0){
                  HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, SET);
                  break;
          }
  }
uint8_t virtualReg = 0x08;
  HAL_I2C_Mem_Write(&hi2c1, AS7262_ADD, WRITE_REGT, 1, &virtualReg, 2, 100)

  while(1){
          HAL_I2C_Mem_Read(&hi2c1, AS7262_ADD, STATUS_REG, 1, &status, 1, 100);
          HAL_I2C_Mem_Read(&hi2c1, AS7262_ADD, RX_VALID, 1, &rx_check, 1, 100);
          if((status && rx_check) != 0){
                  HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, SET);
                  break;
          }
  HAL_I2C_Mem_Read(&hi2c1, AS7262_ADD, READ_REGT, 1, &data, 2, 100);
  }

豌豆爹 发表于 2025-9-15 15:53 | 显示全部楼层
I2C地址错误。
classroom 发表于 2025-9-15 16:54 | 显示全部楼层
寄存器操作逻辑错误
cr315 发表于 2025-9-15 20:55 | 显示全部楼层
可能是硬件连接问题,检查上拉电阻还有I2C引脚与AS7262连接。
duo点 发表于 2025-9-15 21:58 | 显示全部楼层
修正I2C地址为 0x49。
flycamelaaa 发表于 2025-9-15 21:58 | 显示全部楼层
检查上拉电阻和引脚连接。
probedog 发表于 2025-9-15 16:00 | 显示全部楼层
时钟配置或超时,增加超时时间或降低I2C速度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

58

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部