控制/MCU
了解如何使用外部中断并在按下用户按钮时打开 LED。
使用 STM32CubeIDE 将连接到用户按钮的 GPIO 配置为具有下降沿触发的外部中断 (EXTI)
了解如何配置中断控制器:NVIC
通过按下打开 LED 的按钮来验证功能是否正确
2.2在STM32CubeIDE中创建工程↑
主面板中的文件>新建>STM32 项目。
在此示例中,使用了 NUCLEO-L476RG 板。
在板选择器中选择 NUCLEO-L476RG 。
保存项目
2.3配置GPIO↑
将 LED 引脚配置为 GPIO_Output(NucleoFL476RG 上的 PA5)。对于其他板,请查看其用户手册。
将按钮引脚配置为 GPIO_EXTI(NucleoL467RG 上的 PC13)。对于其他板,请查看其用户手册。
检查 GPIO 配置
为 EXTI 启用中断
2.4生成工程并编辑main.c↑
生成代码的最简单方法是保存当前项目:Ctrl + S
代码已生成,因此您可以在项目资源管理器的屏幕左侧看到它
2.4.1 HAL库工作流程总结
↑
HAL 库提供对 STM32 外设(如 EXTI)的高级访问。
HAL_EXTI0_IRQHandler 和 EXTI0_IRQHandler 位于 stm32l4xx_it.c 文件中。
您必须在 main.c 中定义回调函数:HAL_GPIO_EXTI_Callback。
.
600px
2.4.2配置中断
↑
创建一个函数来处理 EXTI 中断:
EXTI 的 HAL 回调函数:void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
要打开 LED,我们需要使用函数:HAL_GPIO_WritePin
将函数放入 main.c
在/* USER CODE BEGIN 4 */和/* USER CODE END 4 */标签 之间插入您的代码
/ *用户代码开始4 * / void HAL_GPIO_EXTI_Callback ( uint16_t GPIO_Pin ) { if( GPIO_Pin == GPIO_PIN_13 ) { _ }else{ __NOP (); } } /* 用户代码结束 4 */
2.5编译烧录↑
单击构建按钮
单击调试按钮(逐步运行)
或者在运行按钮上(执行)
=> 当您按下电路板上的蓝色按钮时,LED 必须亮起。
全部0条评论
快来发表一下你的评论吧 !