当前位置:   article > 正文

STM32F103基于I2C协议的AHT20温湿度传感器的数据采集_aht20温湿度传感器模块stm32单片机程序下载

aht20温湿度传感器模块stm32单片机程序下载

目录

一、实现AHT20采集程序

1.主要代码

2.生成.hex文件

 二、硬件连接

三、具体实现

 四、参考资料


一、实现AHT20采集程序

全部代码可以到这里下载:https://github.com/Sunlight-Dazzling/stm32-AHT20/tree/master

1.主要代码

(1)AHT20芯片的使用过程

  1. void read_AHT20_once(void)
  2. {
  3. delay_ms(10);
  4. reset_AHT20();//重置AHT20芯片
  5. delay_ms(10);
  6. init_AHT20();//初始化AHT20芯片
  7. delay_ms(10);
  8. startMeasure_AHT20();//开始测试AHT20芯片
  9. delay_ms(80);
  10. read_AHT20();//读取AHT20采集的到的数据
  11. delay_ms(5);
  12. }

(2)AHT20芯片读取数据

  1. void read_AHT20(void)
  2. {
  3. uint8_t i;
  4. for(i=0; i<6; i++)
  5. {
  6. readByte[i]=0;
  7. }
  8. I2C_Start();//I2C启动
  9. I2C_WriteByte(0x71);//I2C写数据
  10. ack_status = Receive_ACK();//收到的应答信息
  11. readByte[0]= I2C_ReadByte();//I2C读取数据
  12. Send_ACK();//发送应答信息
  13. readByte[1]= I2C_ReadByte();
  14. Send_ACK();
  15. readByte[2]= I2C_ReadByte();
  16. Send_ACK();
  17. readByte[3]= I2C_ReadByte();
  18. Send_ACK();
  19. readByte[4]= I2C_ReadByte();
  20. Send_ACK();
  21. readByte[5]= I2C_ReadByte();
  22. SendNot_Ack();
  23. //Send_ACK();
  24. I2C_Stop();//I2C停止函数
  25. //判断读取到的第一个字节是不是0x080x08是该芯片读取流程中规定的,如果读取过程没有问题,就对读到的数据进行相应的处理
  26. if( (readByte[0] & 0x68) == 0x08 )
  27. {
  28. H1 = readByte[1];
  29. H1 = (H1<<8) | readByte[2];
  30. H1 = (H1<<8) | readByte[3];
  31. H1 = H1>>4;
  32. H1 = (H1*1000)/1024/1024;
  33. T1 = readByte[3];
  34. T1 = T1 & 0x0000000F;
  35. T1 = (T1<<8) | readByte[4];
  36. T1 = (T1<<8) | readByte[5];
  37. T1 = (T1*2000)/1024/1024 - 500;
  38. AHT20_OutData[0] = (H1>>8) & 0x000000FF;
  39. AHT20_OutData[1] = H1 & 0x000000FF;
  40. AHT20_OutData[2] = (T1>>8) & 0x000000FF;
  41. AHT20_OutData[3] = T1 & 0x000000FF;
  42. }
  43. else
  44. {
  45. AHT20_OutData[0] = 0xFF;
  46. AHT20_OutData[1] = 0xFF;
  47. AHT20_OutData[2] = 0xFF;
  48. AHT20_OutData[3] = 0xFF;
  49. printf("读取失败!!!");
  50. }
  51. printf("\r\n");
  52. //根据AHT20芯片中,温度和湿度的计算公式,得到最终的结果,通过串口显示
  53. printf("温度:%d%d.%d",T1/100,(T1/10)%10,T1%10);
  54. printf("湿度:%d%d.%d",H1/100,(H1/10)%10,H1%10);
  55. printf("\r\n");
  56. }

2.生成.hex文件

打开项目文件

勾选生成HEX文件

 

 编译并生成.HEX文件

 二、硬件连接

USB与STM32F103之间的连接:

BOOT0置1,BOOT1置0

USB TO TTLSTM32F103
3v33v3
GNDGND
RXDA9
TXDA10

STM32F103与传感器之间的连接:

STM32F103AHT20
3v3VCC
GNDGND
PB6SCL
PB7SCA

三、具体实现

打开串口调试助手mcuisp,烧录程序

 然后打开野火多功能调试助手,打开串口之后,可以看到正在温度采集,对传感器吹气后,会发现温度变化

 

 四、参考资料

https://blog.csdn.net/qq_43279579/article/details/111597278

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/858231
推荐阅读
相关标签
  

闽ICP备14008679号