### 驱动步骤
1.首先发送AHT10的驱动指令 char INIT_CMD[3] = { 0xE1, 0x08, 0x00 };
2.发送测量指令 uint8_t START_MEASUREMENT_CMD[3] = { 0xAC, 0x33, 0x00 };
3.使用HAL_I2C_Master_Receive 读取寄存器 HAL_I2C_Master_Receive(&hi2c1, AHT10_ADRESS, rawBuff, 6, 0xff);
在stm32中 使用 HAL_I2C_Master_Transmit(&hi2c1, AHT10_ADRESS, INIT_CMD, 3, 0xffff); 发送
参数直接为设备地址 指令数组 数组大小即可
在stm32中 使用 HAL_I2C_Master_Receive(&hi2c1, AHT10_ADRESS, rawBuff, 6, 0xff); 接受
参数直接为设备地址 接收的数组 接收的数组大小 即可 就是这么简单
int main(void) {
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
//初始化
HAL_Delay(50);
char INIT_CMD[3] = { 0xE1, 0x08, 0x00 };
HAL_I2C_Master_Transmit(&hi2c1, AHT10_ADRESS, INIT_CMD, 3, 0xffff);
HAL_Delay(50);
//软复位指令
//触发测量命令
uint8_t START_MEASUREMENT_CMD[3] = { 0xAC, 0x33, 0x00 };
HAL_I2C_Master_Transmit(&hi2c1, AHT10_ADRESS, START_MEASUREMENT_CMD, 3,
0xffff);
//延时等待
HAL_Delay(80);
char logdata[50];
while (1) {
uint8_t rawBuff[6] = { };
HAL_I2C_Master_Receive(&hi2c1, AHT10_ADRESS, rawBuff, 6, 0xff);
uint32_t AHT10_ADC_Raw = (((uint32_t) rawBuff[3] & 15) << 16)| ((uint32_t) rawBuff[4] << 8) | rawBuff[5];
float AHT10_Temperature = (float) (AHT10_ADC_Raw * 200.00 / 1048576.00)- 50.00;
float AHT10_Humidity = (float) (AHT10_ADC_Raw * 100.00 / 1048576.00);
int sendLength = sprintf(logdata, "temp:%.2f humi:%.2f \r",AHT10_Temperature, AHT10_Humidity);
HAL_UART_Transmit(&huart1, logdata, sendLength, HAL_MAX_DELAY);
uint8_t START_MEASUREMENT_CMD[3] = { 0xAC, 0x33, 0x00 };
HAL_I2C_Master_Transmit(&hi2c1, AHT10_ADRESS, START_MEASUREMENT_CMD, 3,0xffff);
HAL_Delay(200);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}