首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在stm32f1下使用EXTI中断和HAL库?

如何在stm32f1下使用EXTI中断和HAL库?
EN

Stack Overflow用户
提问于 2019-11-20 02:25:06
回答 1查看 1.4K关注 0票数 0

我需要在我的stm32f103板的A1端口上配置一个exti中断。我用stm32cubemx创建了一个模板,但我正在尝试手动配置中断,因为这是我已经编写的代码的一个新特性。我正在阅读许多主题,但我没有找到任何解决方案。在这个项目中,我使用了HAL库,并遵循以下步骤:

配置GPIO

代码语言:javascript
复制
      GPIO_InitStruct.Pin = GPIO_PIN_1;
      GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

启用IRQ

代码语言:javascript
复制
     HAL_NVIC_SetPriority(EXTI1_IRQn, 3, 0);
     HAL_NVIC_EnableIRQ(EXTI1_IRQn);

自定义回调

代码语言:javascript
复制
      void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
     {
      if(GPIO_Pin == STEP_PIN)
      {
        GlobalMotorData.step.longint++;
      }
     }

我在一个新的.c文件中编写了回调函数,并且我没有在stm32f1xx_hal_gpio.c中使用相同的函数

我没有启用宏HAL_EXTI_MODULE_ENABLED,因为项目找不到相应的.h头文件,但是如果没有宏,代码将不会出现错误。

我忘了什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-11-22 05:58:48

您很可能错过了EXTI1中断处理程序:

代码语言:javascript
复制
void EXTI1_IRQHandler(void)
{
    HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58940598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档