| 平台 | 目标 | 板子 |
| lm620 | r4f4 | e837n_v01 |
演示通过 I2C 总线与 AHT20 温湿度传感器通信,读取温度和湿度数据。
预期行为
**传感器初始化**:
- 配置 I2C 引脚复用(SCL、SDA),以 100 kHz 速度初始化 I2C 主机
- 对 AHT20 执行软复位,读取状态寄存器,若未校准则执行初始化命令( 0xBE 0x08 0x00 )
**周期性测量**:
- 每 500 ms 触发一次 AHT20 测量(命令 0xAC 0x33 0x00 ),等待 100 ms 后读取 7 字节原始数据
- 解析温湿度原始值并转换为实际物理量(温度 -40~85 °C,湿度 0~100 )
- 数据正常时串口输出:
[00000000][i2c_task]: start
[00000100][i2c_task]: temperature: 25.30 C
[00000100][i2c_task]: humidity: 55.20 %
[00000000][i2c_task]: measurement error - data out of range
编译和运行
cd examples/peripherals/i2c/aht20
xt --target lm620/r4f4 --board e837n_v01 fullclean build
下载固件后运行,串口观察温湿度采集日志。
注意事项
- I2C 引脚(SCL、SDA)依赖 xt_board(板级配置) 配置,不同板子需确认 XT_BRD_I2C_AHT20_SCL_PIN 等宏映射正确
- 此示例需要 AHT20 传感器硬件连接至同一 I2C 总线
- 传感器上电后需先校准(CAL 位为 0 时需要初始化),否则测量数据无效
- DBG_LOG 调试宏默认关闭( DBG_LOG_ENABLE=0 ),开启可输出详细 I2C 通信过程