用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);
}
|