打印
[STM32L4+]

【STEVAL-STWINKT1B测评】传感器LPS22HH的使用

[复制链接]
440|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#

据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,可看原理图:


和前文一样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函数的代码改成

{ 
  HAL_Init();
  SystemClock_Config();
  SystemPower_Config();
  MX_USART2_UART_Init();
  MX_I2C2_Init();
  MX_GPIO_PE1_Init();

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

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

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

  while (1) {
    hts221_read_data_polling();
    stts751_read_data_polling();
    lps22hh_read_data_polling();
    HAL_Delay(1000);
  }


烧录测试




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

62

帖子

0

粉丝