如何使用STM32L4探索套件中提供的传感器进行测量

发布时间:2023-08-08  

目标描述

本教程的目的是解释如何使用 STM32L4 探索套件中提供的传感器进行测量。逐步描述温度传感器的配置。


完成本教程后,您将能够使用 B-L475E-IOT01A 板上可用的传感器收集值。

本教程的附录提供了有关如何将 AC6 示例移植到 STM32CubeIDE 的指南。

先决条件


你已经通过:

Step1:工具安装和首次测试

Step3:串口及新板介绍

硬件

STM32L4 探索套件物联网节点[1] (B-L475E-IOT01A)

USB 数据线 Type-A 转 Micro-B

文学

用于物联网节点的UM2153 探索套件,与 STM32L4 的多通道通信

UM1884 STM32L4/L4+ HAL及底层驱动说明

UM1859开始使用 STM32Cube 的 X-CUBE-MEMS1 运动 MEMS 和环境传感器软件扩展

UM2579从 System Workbench 到 STM32CubeIDE 的迁移指南

STM32L4 探索套件物联网节点入门

内容↑

[隐藏]

1个B-L475E-IOT01A 的传感器使用

1.1硬件说明

1.2示例:使用 HTS221 传感器获取温度值并将其显示在终端上

1.2.1使用 STM32CubeMX 创建工作项目

1.2.2将 BSP 驱动程序复制到您的项目

1.2.3支持 STM32CubeIDE 工作区中的 BSP

1.2.4更新包含路径

1.2.5更新源文件

1.2.6编译并运行示例

2个附录:将一个AC6示例移植到STM32CubeIDE

2.1硬件说明

2.2示例:使用 HTS221 传感器获取温度值并显示在终端上(从 AC6 移植到 STM32CubeIDE)

2.2.1硬件设置

2.2.2示例详细信息

2.2.3将示例移植到STM32CubeIDE

2.2.4编译并运行示例

3个参考

1传感器与 B-L475E-IOT01A 的使用↑

1.1硬件说明↑

STM32L4 探索套件物联网节点 (B-L475E-IOT01A) 中可用的主要传感器有:

用于相对湿度和温度的电容式数字传感器 (HTS221)

260-1260 hPa 绝对数字输出气压计 (LPS22HB)

3D 加速度计和 3D 陀螺仪 (LSM6DSL)

高性能 3 轴磁力计 (LIS3MDL)。

400px-IoTNode_Board_Sensor.png

1.2示例:使用HTS221传感器获取温度值并显示在终端上↑

本节的目的是逐步说明如何与 HTS221 传感器连接以获取温度值并将其显示在终端上。

1.2.1使用STM32CubeMX创建工作项目↑

起点是标题为B-L475E-IOT01A 上的 UART I/F 简介的第 3 步教程中描述的使用 STM32CubeMX 生成的项目。

按照此处描述的步骤操作并调用生成的项目 L4_IOT_Sensors。

1.2.2复制BSP驱动到你的项目中↑

BSP(板级支持包)驱动程序在STM32CubeL4包中提供。这提供了与电路板的硬件组件相对应的 API。STM32CubeL4 软件包的最新版本默认下载到 STM32CubeMX 存储库 ( C:Usersuser_nameSTM32CubeRepositorySTM32Cube_FW_L4_Vx.xx.x )。

BSP在树中的位置和内容:

150px-Folder_tree.png

25px-Info_white.png

信息

STM32CubeL4 使用的版本是 1.11.0,但它会随着时间的推移而增加。

以下是将 BSP 驱动程序复制到您的项目中的步骤:

复制STM32CubeL4/Drivers/BSP/B-L475E-IOT01文件夹

在生成的项目中,创建一个文件夹L4_IOT_Sensors/Drivers/BSP。将复制的文件夹粘贴到那里。

复制STM32CubeL4/Drivers/BSP/Components文件夹。将其粘贴到L4_IOT_Sensors/Drivers/BSP/Components下。

可选清理工作目录:由于仅使用 HTS221 温度传感器,可能会删除已复制到工作目录的其他一些文件和文件夹

在 L4_IOT_SensorsDriversBSPB-L475E-IOT01 下,仅保留以下文件:

在L4_IOT_SensorsDriversBSPComponents下,仅保留以下文件夹:

1.2.3 STM32CubeIDE工作区支持BSP ↑

复制完成后,添加的文件夹会自动出现在STM32CubeIDE工作区中:

150px-Folder_tree_4.png

1.2.4更新包含路径↑

更新路径以支持新的头文件:

从Project Explorer透视图中选择相关项目:

300px-Project_select.png

从“项目”菜单或“文件”菜单,转到“属性”》“C/C++ 构建”》“设置”》“工具设置”》“MCU GCC 编译器”》“包含路径”

单击以包含新路径

添加。./Drivers/BSP/B-L475E-IOT01和。./Drivers/BSP/Components/hts221路径

以下屏幕截图总结了要遵循的步骤:

450px-Project_setting.png

1.2.5更新源文件↑

唯一要修改的文件是main.c,如下所示:

包含头文件:stm32l475e_iot01.h、stm32l475e_iot01_tsensor.h和math.h

/* 用户代码开始包括 */ 《 br 》 #include “stm32l475e_iot01.h” #include “stm32l475e_iot01_tsensor.h” #include 《数学.h》 /* 用户代码结束包括 */

添加私有值以用于温度值和终端上显示的消息:

/* USER CODE BEGIN PV */ /* 私有变量 -------------------------------------- --------------*/ float temp_value = 0 ; // 测量温度值 char str_tmp [ 100 ] = “” ; // 显示温度值的格式化消息 uint8_t msg1 [] = “****** Temperature values measurement ****** nnr ” ; uint8_t msg2 [] = “=====》 初始化温度传感器 HTS221 rn ” ; uint8_t msg3 [] = “=====》 温度传感器 HTS221 已初始化rn ” ; /* 用户代码结束 PV */

在终端上显示消息并初始化 HTS221 温度传感器:

/* 用户代码开始 2 */ HAL_UART_Transmit ( & huart1 , msg1 , sizeof ( msg1 ), 1000 ); HAL_UART_Transmit ( & huart1 , msg2 , sizeof ( msg2 ), 1000 ); BSP_TSENSOR_Init (); HAL_UART_Transmit ( & huart1 , msg3 , sizeof ( msg3 ), 1000 ); /* 用户代码结束 2 */ /

在while(1)循环中,读取温度值,格式化,然后在终端显示带有测量值的信息:

/* 用户代码开始 3 */ temp_value = BSP_TSENSOR_ReadTemp (); int tmpInt1 = temp_value ; float tmpFrac = temp_value - tmpInt1 ; int tmpInt2 = trunc ( tmpFrac * 100 ); snprintf ( str_tmp , 100 , “ TEMPERATURE = %d.%02d nr ” , tmpInt1 , tmpInt2 ); HAL_UART_Transmit ( & huart1 ,( uint8_t * ) str_tmp , sizeof ( str_tmp ), 1000 ); HAL_延迟(1000 ); /* 用户代码结束 3 */

25px-Info_white.png

信息

注意在正确的用户代码部分进行更新,以避免使用新的 STM32CubeMX 代码生成覆盖它们。

1.2.6编译运行示例↑

点击Build按钮编译项目

点击调试按钮运行软件

打开控制台模拟器,例如 TeraTerm [2]。要配置控制台波特率,请选择数据位:8 并单击确定。您的 PC 上的端口名称可能不同

STM32CubeIDE 打开调试透视图。点击Resume按钮执行代码

TeraTerm [2]在测得的温度值之前显示初始化消息:

300px-TeraTerm_Temp.png

现在您可以:

构建您自己的项目以使用嵌入在 B-L475E-IOT01A 上的传感器测量温度值

将 BSP 组件添加到 STM32CubeMx 生成的项目中

将该板的用途扩展到 HTS221 以外的传感器,以进行环境测量。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    车安全、控制系统以及智能感知等方面发挥着重要作用。然而,传统的容性传感器测量方法存在难以控制、难以读出、容易老化且易受温度影响等问题。因此,研究新型的转换器测量方法,以提高容性传感器的测量精度和稳定性,对于......
    对停针控制算法有较高的要求,因此对提供给控制算法的速度参数精度要求较高,本设计要求速度测量误差不大于O.5%。 1 无刷直流电机的速度测量 速度测量的方法有很多种,如霍尔转速传感器、测速发电机、光电式转速传感器、感应式转速传感器和旋转变压器式转速传感器......
    。 L pi损耗补偿了功率传感器测得的功率电平中的P。乍一看,损耗的测量方法如图2所示,但是这种测量损耗的方法没有正确制定。 功率传感器测量的功率: P m......
    非接触式测量方法实现工业液体设计方案;此参考设计描述了一种经济高效的低功耗液位测量数据采集系统(DAS),该系统使用补偿式硅压力传感器和高精度delta-sigma ADC。该文档说明了如何实现使用非接触式测量方法来测量......
    谐振密度传感器的应用利用谐振进行密度测量的原理;简介:本文主要介绍了一种应用谐振原理进行测量的密度测量方法,详细的分析了这种密度测量方法的优缺点所在   1. 利用谐振进行密度测量的原理 谐振密度传感器的测量......
    – x1) 当两点校准可用时,该计算方法将有效工作。它使体积分布与特定的液体密度无关。 结论 新型MEMS温度补偿型硅压力传感器的价格和封装尺寸正在下降。这使它们对于必须使用非接触式测量方法测量和分配工业液体的各种精密传感......
    差压式流量计和涡街流量计蒸汽测量的研究;目前,国内外对蒸汽流量计量的关注点多在双参数测量传感器的研究。研究学者提出了多种多传感器组合测量方法,其中使用最广泛的是差压式流量计和涡街流量计。然而,文丘里管测量......
    内部配置已省略),即可完全测准0-600℃范围内温度每变化0.1℃时所对应的电压值。此种测量方案相比较传统的电桥差分放大测量,不仅可以完全消除由传感器的测量线内阻本身所带来的误差,而且ADC的测量精度显著提高,成本......
    简单清晰,精确度高,但测量时间较长,对环境条件要求较高。稳态法适合在中等温度下测量的导热系数材料。适用于岩土、塑料、橡胶、玻璃、绝热保温材料等低导热系数材料。 测试方法二、热流法热流法是一种比较法,是用校正过的热流传感器测量......
    图: 改完地址后,再点击“输入” ,将“测量型号”中点击“ 2DMU ”设置传感器的类型。(本次用的是两线的变送器) 。如下图:  AI 系统 建立一个西门子硬件模块在添加好电源和 CPU 后,在配......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>