使用 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 模块设置为注入转换组时的温度。