欢迎来到比一比商城请登录免费注册
0   购物车  
首页>方案超市>方案详情
B1B
#

STM32应用:透过I2C连结STM HTS221 MEMS感应器检测温溼度

人气
593
相关芯片型号:
HTS221
跳转到...
温馨提示:如需了解更多信息,请通过在线咨询联系!
方案简介 性能参数
STEVAL-MKI141V2是具备有STM HTS221 MEMS 温溼度感应器的开发板,本文示范如何利用STM32 MCU和STEVAL-MKI141V2使用I2C通讯取得目前环境的温溼度。本文范例使用STM32L053C8T6,主要是具备有COM-SEG LCD控制和超低待机功耗,适合长时间待机使用。
 
首先利用CubeMX,开通I2C作为和HTS221 EVB通讯使用,参数不须特意更改。
HTS221_ReadID();
if (SensorID != 0xBC)
{
// Error Handler
}
 
首先读取sensor ID,确保I2C和sensor已经可以通讯。
HTS221_Power_On();
通知sensor离开power down,转换到active模式。
HTS221_Calibration();
读取sensor的工厂校正值,稍后在做温溼度读取时会需要用到这些参数。
HTS221_Config();
设定sensor其他功能,如DRDY讯号输出和转换频率等参数,到这边准备工作基本上就已经完成了。
下面是读取湿度的范例。
HAL_I2C_Mem_Read(&hi2c1, HTS221_ADDRESS, HTS221_HUMIDITY_OUT_L_ADDR | INCREMENTING_RW, I2C_MEMADD_SIZE_8BIT, tempReg, 2, I2C_TIMEOUT);
这边读取湿度资料的暂存器。
H_T_out = (int16_t)((((uint16_t)tempReg[1]) << 8) | (uint16_t)tempReg[0]);
H_rh = ((float)(H_T_out - H0_T0_out)) / (H1_T0_out - H0_T0_out) * (H1_rh - H0_rh) + H0_rh;
这边是根据校正值后算出实际湿度。
 
下面是读取温度的范例。
HAL_I2C_Mem_Read(&hi2c1, HTS221_ADDRESS, HTS221_TEMP_OUT_L_ADDR | INCREMENTING_RW, I2C_MEMADD_SIZE_8BIT, tempReg, 2, I2C_TIMEOUT);
这边是读取温度的暂存器。
T_out = (int16_t)((((uint16_t)tempReg[1]) << 8) | (uint16_t)tempReg[0]);
T_degC = ((float)(T_out - T0_out)) / (T1_out - T0_out) * (T1_degC - T0_degC) + T0_degC;
这边是根据校正值后算出实际温度。
  • 行业分类 : 软件开发
  • 开发平台 :
  • 交付形式 :
  • 性能参数 :
  • 应用场景 :

方案发布商

B1B

B1B

相关方案

  • 稳定可靠防死机的低功耗小体积显示主板I3399适用于工控医疗健康(4G&16G含屏幕)

    应用领域: 工业电子

     

    ¥ 1465/每件

正品保障 假一赔十
品类齐全 一站购齐
闪电发货 极速物流
现货特价 期货钜惠
客服
电话
购物车
订单