使用 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 会闪烁,表示代码正在运行。
其他可尝试的操作
配置不同引脚并运行示例。
以不同速率配置并分析行为。