Main Content

使用 Hardware Interrupt 模块在基于 STMicroelectronics STM32 处理器的板上创建 ISR

此示例说明如何使用 Hardware Interrupt 模块在生成的代码中针对 Embedded Coder® Support Package for STMicroelectronics® STM32 Processors Based Boards 创建中断服务例程 (ISR)。

使用此示例,您可以:

  • 创建 ISR 以对基于 STM32 处理器的硬件板上的事件作出响应。

  • 配置 Hardware Interrupt 模块,为 NUCLEO-F429ZI 板上的 ISR 发出的按下用户按钮提供服务。

简介

Embedded Coder Support Package for STMicroelectronics STM32 Processors 使您能够在运行时使用 Simulink® 模块访问外设,以及使用 STM32CubeMX 工具配置处理器上的外设。

在此示例中,您将学习如何配置具有 Hardware Interrupt 模块的 Simulink 模型,以便在按下 STMicroelectronics NUCLEO-F429ZI 板上的按钮时生成代码并使蓝色 LED 以不同速率闪烁。

前提条件

完成以下教程:

基于 STMicroelectronics STM32 处理器的板快速入门

必需的硬件

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

  • STMicroelectronics NUCLEO-F429ZI 板

  • 微型 USB 数据线

模型

open_system('stm32_hwi_gettingstarted');

使用此模型,您可以在按下 NUCLEO-F429ZI 板上的按钮时使蓝色 LED 以不同速率闪烁。

您能够以更快的速度读取用户按钮的逻辑状态,这样您就不会错过用户按钮状态的任何更改。为了优化模型,您可以使用 Hardware Interrupt 模块来生成 ISR,该 ISR 仅在按下用户按钮时触发。在这种合理机制下,用户按钮的任何状态变化都会得到通知。

在 Simulink 中配置 Hardware Interrupt 模块以使 LED 闪烁

在此任务中,您将配置目标模型,使蓝色 LED 在模型中以不同速率闪烁。

1.打开 stm32_hwi_gettingstarted 目标模型。

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

  • 用户按钮(蓝色按钮)连接到 GPIOC 端口的引脚 13 (PC13),因此它触发事件 EXTI 13。

  • 蓝色 LED 连接到 GPIOB 端口的引脚 7 (PB7)。

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

4.在所选 STM32CubeMX 工程中配置以下配置以切换用户 LED。

  • PB7(GPIOB 的引脚 7)作为 GPIO_Output

  • PC13 引脚作为 GPIO_EXTI13 以生成事件 EXTI 13 并触发对应的 ISR。

  • GPIO 附加设置

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

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

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

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

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

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

  • 保存工程。

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

1.要为模型生成代码,请按 Ctrl+B 或点击编译、部署和启动

2.按照编译过程进行操作,方法是使用模型画布底部提供的链接打开诊断查看器。在您将代码加载到板上后,硬件板上的蓝色 LED 会闪烁,表示代码正在运行。

其他可尝试的操作

  • 配置不同引脚并运行示例。

  • 以不同速率配置并分析行为。

另请参阅