STM32 例程-6 STM32CubeMx 读取SHT20 温湿度

1、使用STMF32F407ZGTx MCU
RCC

STM32 例程-6 STM32CubeMx 读取SHT20 温湿度
SYS
STM32 例程-6 STM32CubeMx 读取SHT20 温湿度
2、生成项目,并打开
3、在主代码里添加如下代码
#define SHT20_WriteAddr 0x80
#define SHT20_ReadAddr  0x81

#define SHT20_Trig_T 0xE3
#define SHT20_Trig_RH 0xE5
float TemValue,RhValue;

void SHT20_ReadValues(void)
{
 uint8_t tem[3],rh[3];
 uint16_t Tdata=0,RHdata=0;

 //第一种方法:分步操作
// uint8_t cmd;
//
// cmd=SHT20_Trig_T;
// HAL_I2C_Master_Transmit(&hi2c1,SHT20_WriteAddr,&cmd,1,0xffff);
// HAL_Delay(100);
// HAL_I2C_Master_Receive(&hi2c1,SHT20_ReadAddr,tem,3,0x3ffff);
//
// cmd=SHT20_Trig_RH;
// HAL_I2C_Master_Transmit(&hi2c1,SHT20_WriteAddr,&cmd,1,0xffff);
// HAL_Delay(100);
// HAL_I2C_Master_Receive(&hi2c1,SHT20_ReadAddr,rh,3,0x3ffff);

 //第二种方法:复合操作
 HAL_I2C_Mem_Read(&hi2c2,SHT20_ReadAddr,SHT20_Trig_T,I2C_MEMADD_SIZE_8BIT,tem,3,0xffff);
 HAL_I2C_Mem_Read(&hi2c2,SHT20_ReadAddr,SHT20_Trig_RH,I2C_MEMADD_SIZE_8BIT,rh,3,0xffff);

 Tdata = tem[0];
 Tdata <<= 65536 8; tdata +="tem[1]" & 0xfe; rhdata="rh[0];" <<="8;" temvalue="Tdata" * 175.72f - 46.85f; rhvalue="RHdata" 125.0f 6.0f; } void sht20_softreset(void) { uint8_t cmd="0xfe;" hal_i2c_master_transmit(&hi2c2,sht20_writeaddr,&cmd,1,0xffff); hal_delay(100); < code></=>
 while (1)
  {
    /* USER CODE END WHILE */
        SHT20_SoftReset();
        SHT20_ReadValues();
    /* USER CODE BEGIN 3 */
  }

4、下载代码执行

STM32 例程-6 STM32CubeMx 读取SHT20 温湿度

本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。
另外建了几个QQ技术群:
2、全栈技术群:616945527,加群口令abc123
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600

闲置域名WWW.EXAI.CN (超级人工智能)出售。

Original: https://www.cnblogs.com/zhaogaojian/p/16089177.html
Author: zhaogaojian
Title: STM32 例程-6 STM32CubeMx 读取SHT20 温湿度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554442/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球