[STM32L4+] 【STEVAL-STWINKT1B测评】传感器LPS22HH的使用

[复制链接]
 楼主| xhackerustc 发表于 2024-9-7 16:30 | 显示全部楼层 |阅读模式
<
#申请原创#

据ST官方LPS22HH的datasheet,LPS22HH是一款绝对压力传感器,可用作数字输出气压计。应用对象包 括但不限于:GPS设备,气象台设备,运动手表,四轴飞行器等等。

主要特性包括:测量范围是260至1260 hPa绝对压力;耗电上电流消耗低至4uA;精度是0.5hPa;低压传感器噪声为0.65Pa;自带温度补偿;数据输出是24位;ODR范围是1Hz至200Hz;与主机/MCU接口支持SPI、I2C或I3C;带有FIFO;供电电压范围是1.7V至3.6V。

不过在我们的STEVAL-STWINKT1B开发板上,LPS22HH与主控STM32L4R9ZIJ6是通过I2C连接,具体的是I2C2,可看原理图:
3.jpg

和前文一样fp-sns-datalog2也有这个传感器的驱动代码,位置也在Drivers/BSP/Components/目录下,最终的传感器数据读取也被包装在叫做BSP_ENV_SENSOR_GetValue()函数里,笔者这次还是想用原始的 接口,所以仍然从前文的STMems_Standard_C_drivers仓库拷贝代码:

把lps22hh_STdC/目录下的driver/lps22hh_reg.c driver/lps22hh_reg.h 和examples/lps22hh_read_data_polling.c拷贝到demo目录

修改lps22hh_read_data_polling.c的stts751_read_data_polling()函数:1.分成两大块,初始化和数 据读取;2.数据读取只读一次;3.修改stts751_read_data_polling.c的platform_write()和platform_read(),让它们用I2C2操作。


最后main函数的代码改成

  1. {
  2.   HAL_Init();
  3.   SystemClock_Config();
  4.   SystemPower_Config();
  5.   MX_USART2_UART_Init();
  6.   MX_I2C2_Init();
  7.   MX_GPIO_PE1_Init();

  8.   hts221_init();
  9.   printf("hts221 init done.\n");

  10.   stts751_init();
  11.   printf("stts751 init done.\n");

  12.   lps22hh_init();
  13.   printf("lps22hh init done.\n");

  14.   while (1) {
  15.     hts221_read_data_polling();
  16.     stts751_read_data_polling();
  17.     lps22hh_read_data_polling();
  18.     HAL_Delay(1000);
  19.   }


烧录测试


5.jpg

呐咯密密 发表于 2024-9-20 10:14 | 显示全部楼层
s
湿度这个传感器也能检测吗
yangjiaxu 发表于 2024-9-20 10:15 | 显示全部楼层
s
这个传感器是不是还支持温湿度啊?我记得好像是支持的
埃娃 发表于 2024-9-21 12:11 | 显示全部楼层
s
i3c兼容i2c吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

165

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部