文章目录

  • LPS25HB 气压计 的嵌入式程序开发
    • 开发简介:
    • 开发过程:

LPS25HB 气压计 的嵌入式程序开发

开发简介:

虽然传感器的检测的物理性质不同,但是传感器的硬件接口一般都有一些相似。如果你做过一种一款传感器如加速度,温湿度,那么其他的传感器的嵌入式程序实现都差不多。主要涉及这样几块相同的内容:
1、通用接口IIC还是SPI
2、芯片是否支持FIFO的功能。
3、是否支持中断的机制。

开发过程:

下面以LPS25HB气压传感器为例,简单介绍开发过程。
1、这里我们采用IIC的通讯方式,
当然首先需要对MCU的IIC接口进行初始化。
STM32 平台的初始化一般如下:

uint8_t MX_I2C1_Init(void)  //加速度、气压传感器SensorIIC接口
{hi2c1.Instance = I2C1;hi2c1.Init.ClockSpeed = 400000;hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;hi2c1.Init.OwnAddress1 = 0x34;hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;hi2c1.Init.OwnAddress2 = 0;hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;if (HAL_I2C_Init(&hi2c1) != HAL_OK){_Error_Handler(__FILE__, __LINE__);}if( HAL_I2C_GetState( &hi2c1) == HAL_I2C_STATE_READY ){return 0;}else{return 1;}}

2、实现IIC的读写功能,如果有启用中断,则配置中断管脚及中断优先级

void BSP_BARO_Init(lps25hb_ctx_t *dev_ctx)
{dev_ctx->write_reg = platform_write;dev_ctx->read_reg =  platform_read;dev_ctx->handle   =   &hi2c1;BSP_BARO_IO_ITConfig(); // 使能Baro MEMS 中断}

3、调试IIC读写功能是否正常,我们可以读取传感器芯片的 whoamI 值来确认。然后配置已基本的寄存器参数,如果启用FIFO,那相对就复杂些。默认是ByPass 模式。

void BSP_BARO_Config(lps25hb_ctx_t *dev_ctx)
{   /* Check device ID */whoamI = 0;lps25hb_device_id_get(dev_ctx, &whoamI);if ( whoamI != LPS25HB_ID )while(1); /*manage here device not found *//* Restore default configuration */lps25hb_reset_set(dev_ctx, PROPERTY_ENABLE);do {lps25hb_reset_get(dev_ctx, &rst);} while (rst);/*  Enable Block Data Update */lps25hb_block_data_update_set(dev_ctx, PROPERTY_ENABLE);/* Set Output Data Rate */lps25hb_data_rate_set(dev_ctx, LPS25HB_ODR_25Hz);    #ifdef  FIFO_BARO     //如果定义的FIFO功能//   lps25hb_fifo_mode_set(dev_ctx,LPS25HB_FIFO_MODE);                                    // 设置 FIFO Mode;lps25hb_stop_on_fifo_threshold_set(dev_ctx,1);//   lps25hb_fifo_set(dev_ctx,1);   //启用FIFOlps25hb_int_pin_mode_set(dev_ctx,LPS25HB_DRDY_OR_FIFO_FLAGS);                     //开启中断lps25hb_fifo_watermark_set(dev_ctx,0x0F);                            //开启watermark、、 lps25hb_fifo_get(dev_ctx,&testv);//lps25hb_fifo_watermark_set_level(dev_acc,THRESH_MASK);#endif}

4、ByPass 模式下的数据读取

void BARO_Handle(lps25hb_ctx_t *dev_ctx)
{lps25hb_reg_t reg;lps25hb_status_get(dev_ctx, &reg.status_reg);if (reg.status_reg.p_da){memset(data_raw_pressure.u8bit, 0x00, sizeof(int32_t));lps25hb_pressure_raw_get(dev_ctx, data_raw_pressure.u8bit);pressure_hPa = lps25hb_from_lsb_to_hpa( data_raw_pressure.i32bit);}if (reg.status_reg.t_da){memset(data_raw_temperature.u8bit, 0x00, sizeof(int16_t));lps25hb_temperature_raw_get(dev_ctx, data_raw_temperature.u8bit);temperature_degC = lps25hb_from_lsb_to_degc( data_raw_temperature.i16bit);}
}

ByPass 模式程序简单,适合一般地应用场景。

LPS25HB 气压计 的嵌入式程序开发相关推荐

  1. LPS25HB 气压计 资料整理

    LPS25HB 气压计 资料整理 文章目录 LPS25HB 气压计 资料整理 LPS25HB 的主要特性: LPS25HB 的应用场景: LPS25HB的管脚: LPS25HB的机械物理性能展表 LP ...

  2. uml+oopc嵌入式c语言开发精讲_新的程序开发模式出现,传统的嵌入式C语言程序员快要灭绝了?...

    来源:嵌入式时代@头条号 在2000年前后,嵌入式软件工程师有着一套非常具体的技能,他们通常是电气工程师,不仅了解底层硬件的工作原理,还可以在底层编写汇编代码或者C语言代码,以使系统满足实时需求.嵌入 ...

  3. 嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用

    介绍嵌入式linux开发的环境搭建: 一.PC端环境搭建 2.Ubuntu装好后,在终端安装minicom工具,安装命令:sudo apt-get install minicom 注:该工具在后面烧录 ...

  4. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(一)(转)

    自 MiniGUI 从 1998 年底推出以来,越来越多的人开始选择 MiniGUI 在 Linux 上开发实时嵌入式系统.为了帮助嵌入式软件开发人员使用 MiniGUI编写出更好的应用程序,我们将撰 ...

  5. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  6. 《嵌入式 Linux应用程序开发标准教程(第2版)》——1.1 嵌入式Linux基础

    本节书摘来异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者:华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  7. 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...

    <嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...

  8. 嵌入式LINUX系统程序开发

    嵌入式LINUX系统程序开发 1.Ubuntu 18.04镜像源配置 2.Ubuntu上用gcc进行编写程序 2.1.gcc的安装 2.2.gcc的常用命令 2.3.编译运行程序 3.Windows下 ...

  9. Windows CE嵌入式系统程序开发

    <Windows CE嵌入式系统程序开发> 基本信息 作者: 胡文    冯剑    姜海涛    胡玥    丛书名: 单片机与嵌入式丛书 出版社:机械工业出版社 ISBN:978711 ...

最新文章

  1. python excel xldr xlwt xlutils 使用简介
  2. JAVA求是否为闰年,for-while循环,输出你好
  3. Twitch 沈悦时:国内外互联网直播生态差异
  4. fusion 360安装程序的多个实例正在同时运行。_阿里架构师实例讲解——Java多线程编程;详细的不能再详细了...
  5. 《MySQL——38道查询练习(无连接查询)》
  6. Android抽屉页面效果
  7. SwitchHosts!提示没有切换权限:C:\WINDOWS\system32\drivers\etc\host 文件无法修改
  8. 从零开始学Pytorch(十四)之优化算法进阶
  9. 安装caffe时出现“MySQL”不是内外不wenjian
  10. Dart的套接字与web套接字
  11. 功能测试常用6种方法_云端功能测试:更好的12种方法
  12. 集群服务器分布式iis_使用nginx实现分布式限流的方法
  13. JDK64位安装与JDK环境配置图文教程
  14. Axure学习之快速上手
  15. 按键精灵通过句柄获取窗口坐标_学会用按键精灵获取子窗口句柄
  16. 从MSDN我告诉你下载镜像
  17. C语言strcpy()库函数的实现
  18. 一阶电路实验报告心得_一阶电路实验报告5篇
  19. 信息化实施, 管理前沿 ERP生产系统
  20. 自学Python3脚本100例(1-10)

热门文章

  1. 6、VTK基本数据结构
  2. 【转】MATLAB的polar函数 极坐标绘制最大半径怎样设置
  3. [云炬创业基础笔记]第七张创业团队测试8
  4. [云炬创业基础笔记]第七章创业资源测试1
  5. WIn10+Anaconda 环境下安装 PyTorch 避坑指南
  6. python字符串与文本处理技巧(4): 格式化输出、令牌解析、串上串
  7. matlab 读取含有文本的txt
  8. 在应用环境中如何构造最优的数据库模式
  9. Nginx源码分析-内存池
  10. Docker部署ElasticSearch7.11.1并挂载+配置X-Pack设置帐号密码+Kibana7.11.1+IK插件