如何在STM32H7上配置和使用DTS(数字温度传感器)
如何配置和使用STM32H71上的DTS(数字温度传感器)。简介DTS(数字温度传感器)是在我们的高性能STM32H7系列中引入的。在这篇文章中,我们将看到如何配置和使用这个外设。。。
如何在STM32H7上配置和使用DTS(数字温度传感器)
1.简介
DTS(数字温度传感器)是在我们的高性能STM32H7系列中引入的。在本文中,我们将了解如何在STM32H723上配置和使用此外围设备。2.先决条件
- 硬件
- Micro USB电缆,用于从主机为Nucleo板供电,并将代码加载到STM32中
- 核苷酸-H723

- 软件:STM32CubeIDE
3.理论
DTS产生一个频率与温度成比例的方波。频率是用PCLK或LSE时钟测量的。在本文中,我们将学习如何使用STM32CubeIDE和Nucleo-H2723配置和使用此外围设备。频率测量将使用软件启动。参考时钟将是高速时钟,它是不带分频器的PCLK,将通过校准进行测量,因此快速测量将被禁用。对于采样时间,我们将使用15个样本。可以设置高阈值和低阈值来定义温度窗口,如果超过该温度窗口,将产生中断(即,如果温度高于或低于阈值)。
以下是DTS的框图:

让我们看看如何使用STM32CubeIDE启用、配置和使用外围设备。
4.步骤
-
打开STM32CubIDE
-
使用NUCLEO-H723板创建一个新项目

-
为项目命名

-
使用默认设置初始化所有外围设备

-
配置DTS

-
启用DTS

-
配置DTS
- 使用软件启动测量。
- 参考时钟将是高速参考时钟,它是不带分频器的PCLK。
- 我们将使用校准进行测量,因此快速测量将被禁用。
- 对于采样时间,我们将使用15个样本来获得最高精度。
- 本例中不使用阈值

-
生成代码
保存项目,也将生成代码。
-
将代码添加到main.c
/*用户代码开始PV*/static int32_t温度;/*用户代码结束PV*/让我们添加一些代码来启动外围设备、作为测量启动、停止和初始化DTS。/*用户代码开始2*/*启动DTS外围设备*/if(HAL_DTS_Start(&hdts)!=HAL_OK){/*DTS启动错误*/Error_Handler();}/*以摄氏度为单位获取温度*/if(HAL_DTS_GetTemperature(&hdts,&temperature)!=HAL_OK){/*DTS GetTemperature Error*/Error_Handler();}/*停止DTS外围设备*/if(HAL_DTS_Stop(&hdts)!=HAL_OK){/*DTS停止错误*/Error_Handler();}/*取消初始化DTS外围设备*/if(HAL_DTS_DInit(&hdts)!=HAL_OK){/*DTS去初始化错误*/Error_Handler();}/*用户代码结束2*/
-
构建项目,进入调试模式并运行代码

项目生成后,进入调试会话

现在将变量“温度”添加到实时监视窗口中。
运行代码:

现在,您应该可以看到以摄氏度为单位显示的测量温度。

请记住,这是模具温度,而不是环境温度。
5.链接
产品介绍-STM32H723VE STM32H725VG STM32H722ZE STM32H723ZG-32位Arm®Cortex®-M7 550 MHz MCU,向上。。。
STM32H723/733、STM32H725/735和STM32H730价值线高级基于Arm®的32位MCU-参考ma。。。
STM32CubeIDE-STM32集成开发环境-STMicroelectronics
NUCLEO-H223ZG-STM32Nucleo-144开发板,带STM32H2H223ZGMCU,支持Arduino、ST Zio和。。。