Main Content

使用 Analog to Digital Converter 模块支持基于 STMicroelectronics STM32 处理器的板

此示例说明如何在 Simulink® 模型中使用 Analog to Digital Converter 模块,通过 Embedded Coder® Support Package for STMicroelectronics® STM32 Processors 对连接到模拟输入通道的模拟信号进行数字化处理。

简介

在此示例中,您将了解如何在 Simulink 模型中针对 STMicroelectronics NUCLEO-F429ZI 板为 Analog to Digital Converter 模块生成代码,以测量和数字化内部参考电压和温度。

前提条件

完成以下教程:

必需的硬件

要运行此示例,您需要以下硬件:

  • STMicroelectronics NUCLEO-F429ZI 板。

  • 微型 USB 数据线。

模型

open_system('stm32_adc_gettingstarted');

使用此模型,您可以借助 Analog to Digital Converter 模块,在模型的每个采样时间步读取内部参考电压和温度(内部通道)。

任务 1 - 在 Simulink 建模中配置 ADC 模块,以读取内部参考电压和温度

在此任务中,Analog to Digital Converter 模块配置为向 NUCLEO-F429ZI 板上的两个通道输出一个数组。

  • 输出的第一个元素是从参考电压通道测得的数字化电压。

  • 输出的第二个元素是根据温度测得的数字化电压。

1.打开 stm32_adc_gettingstarted 目标模型。

2.配置模块。双击该模块以打开模块参数对话框。

  • 模型中的 ADC 模块设置为 Trigger and read,以在生成代码中模型的每个时间步转换 ADC。

3.创建一个新的 STM32CubeMX 工程或浏览到现有的 STM32CubeMX 工程。在 STM32CubeMX 工具中启动 STM32CubeMX 工程。有关详细信息,请参阅 基于 STMicroelectronics STM32 处理器的板快速入门

4.执行以下配置,启用并配置 ADC1 通道以数字化参考电压和温度:

  • 在 STM32F4x9 处理器芯片上,参考电压和温度映射到模拟通道 17 和模拟通道 18。

  • 确保 End of Conversion Selection 设置为 EOC flag at the end of all conversions

  • 对 ADC1 启用直接内存访问 (DMA),因为它在多个通道上进行采样并需要确保没有数据丢失。要启用 DMA,请按照以下步骤操作:

5.在 STM32CubeMX 工程中,确保执行以下配置:

  • 工程管理器 > 工程下启用不生成 main()

  • 工程管理器 > 工程下禁用在根下生成

  • 工程管理器 > 高级设置 > 驱动程序选择器下,为外设选择低级 (LL) 驱动程序。

  • 工程管理器 > 高级设置 > 生成函数调用下,对所有外设初始化函数调用取消选择不生成函数调用

  • 工程管理器 > 高级设置 > 生成函数调用下,对所有外设初始化函数调用取消选择可见性(静态)

  • 保存工程。

监控并调节模型

当您对模型执行监控并调节操作时,主机将与运行生成的可执行文件的目标进行通信。

1.打开硬件选项卡,然后点击监控并调节。您可以从诊断查看器中观察到,代码是为模型生成的,并且主机在加载生成的可执行文件后连接到目标。

2.当模型正在运行时,观察 Display 模块以实时查看数字化信号。

任务 2 - 从外部源配置 ADC 触发器

在此任务中,将模数转换器 (ADC) 配置为由外部事件触发,以测量内部参考电压和温度(内部通道)。

触发 ADC 的外部事件生成由模型控制。

1.打开 stm32_adc_ext_trig_gettingstarted 目标模型。

2.创建一个新的 STM32CubeMX 工程或浏览到现有的 STM32CubeMX 工程。在 STM32CubeMX 工具中启动 STM32CubeMX 工程。有关详细信息,请参阅 基于 STMicroelectronics STM32 处理器的板快速入门

3.将 ADC1 配置为从外部事件启动转换:

  • 选择 GPIOE 端口的引脚 11 (PE11),以便只要在 PE11 引脚上检测到正沿,就在 EXTI 11 线上生成事件。

  • 要在 EXTI 11 线上生成事件,Simulink 模型需要引脚 PE11 连接到 GPIOE 端口的引脚 10 (PE10)。因此,在 STM32CubeMX 工程中,引脚 PE10 必须配置为 GPIO_Output

4.在 STM32CubeMX 工程中,确保执行以下配置:

  • 工程管理器 > 工程下启用不生成 main()

  • 工程管理器 > 工程下禁用在根下生成

  • 工程管理器 > 高级设置 > 驱动程序选择器下,为外设选择低级 (LL) 驱动程序。

  • 工程管理器 > 高级设置 > 生成函数调用下,对所有外设初始化函数调用取消选择不生成函数调用

  • 工程管理器 > 高级设置 > 生成函数调用下,对所有外设初始化函数调用取消选择可见性(静态)

  • 保存工程。

5.配置模块。双击该模块以打开模块参数对话框。

  • 将 Analog to Digital Converter 模块配置为只读取结果触发模式,因为 ADC1 配置为基于外部事件源启动转换。

  • 由于 ADC 配置为基于外部事件触发,因此当转换就绪时,通过 DMA2_Stream 0 传输完成中断来读取 ADC 转换的结果。

  • GPIOE 模块配置为引脚 10。

从 Simulink 模型生成代码并加载到硬件板上

监控并调节模型

当您对模型执行监控并调节操作时,主机将与运行生成的可执行文件的目标进行通信。

1.打开硬件选项卡,然后点击监控并调节。您可以从诊断查看器中观察到,代码是为模型生成的,并且主机在加载生成的可执行文件后连接到目标。

2.当模型正在运行时,观察 Display 模块以实时查看数字化信号。

其他可尝试的操作

  • 尝试运行示例,以读取 Analog to Digital Converter 模块设置为注入转换组时的温度。

另请参阅