如何在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.步骤 

  1. 打开STM32CubIDE

  2. 使用NUCLEO-H723板创建一个新项目



 
  1. 为项目命名



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

当弹出Board Project Options(板项目选项)窗口时,单击Yes(是)。
  1. 配置DTS

您将在引脚输出和配置选项卡的模拟类别中找到DTS。
  1. 启用DTS

启用外围设备
  1. 配置DTS

我们将按照本文前面所述配置DTS:
  • 使用软件启动测量。
  • 参考时钟将是高速参考时钟,它是不带分频器的PCLK。
  • 我们将使用校准进行测量,因此快速测量将被禁用。
  • 对于采样时间,我们将使用15个样本来获得最高精度。
  • 本例中不使用阈值
  1. 生成代码

保存项目,也将生成代码。

  1. 将代码添加到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*/
  1. 构建项目,进入调试模式并运行代码


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

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

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

请记住,这是模具温度,而不是环境温度。


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和。。。