梧桐uuu 发表于 2025-9-14 09:46

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

用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速度。
页: [1]
查看完整版本: STM32和AS7262传感器之间建立通信失败