接着第一篇:https://www.eefocus.com/forum/fo ... 1&extra=#pid1553606
第二篇:https://www.eefocus.com/forum/fo ... amp;extra=page%***1
5 温湿度数据AHT20采集 测试使用TL7218X开发板的I2C与温湿度模块AHT20通信,获取温湿度数据。I2C初始化代码如图31所示。 图31 I2C初始化 SDA引脚使用PB3,SCL引脚使用PB2,频率100KHz。
依据AHT20手册,AHT20的写入地址是0x71,读取地址是0x70,上电后等待50ms,然后发送初始化命令0xBE,0x08,0x00初始化AHT20的寄存器。如图32所示。 图32 温湿度模块AHT20寄存器初始化 之后发送测量触发命令0xAC,0x33,0x00开始测量。等待80ms待测量完成,读取6个字节。如图33所示。 图33 发送测量触发命令 第1个字节是状态字,如果状态字Bit[7]为0,表示测量完成。第2个字节、第3个字节和第4个字节的高4位是湿度值,第4个字节的低4位、第5个字节和第6个字节是温度值。依据此进行数据处理,如图34所示。 图34 AHT20温湿度数据处理 查看工程目录vendor-common文件夹下printf.c文件,如图35所示。 图35 gpio模拟串口 printf函数输出使用GPIO模拟串口的方式,这里使用的GPIO是PA0,波特率115200。 将AHT20模块和串口转换工具连接到开发板,如图36所示。 图 36AHT20硬件连接 串口输出的温湿度数值如图37所示。 图 37AHT20温湿度值
将手指放到AHT20上一会,温湿度出现明显变化,如图38所示。 图 38 AHT20温湿度值变化
|