打印
[STM32MP1]

在STM32中,如何配置和使用外部中断?

[复制链接]
419|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
欢乐家园|  楼主 | 2024-10-30 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

是否有特定的案例可以分享?

使用特权

评论回复
沙发
gaoyang9992006| | 2024-11-20 14:22 | 只看该作者
你是说的IO中断吗?
如果不会使用HAL库配置,那么就去用CubeMX配置IO,可以图形化配置,另外还可以给你指定的IO起一个新的名字。

使用特权

评论回复
板凳
gaoyang9992006| | 2024-11-20 14:23 | 只看该作者
例如下面这种配置方式
static void EXTI4_15_IRQHandler_Config(void)
{
  GPIO_InitTypeDef   GPIO_InitStructure;


  /* Enable GPIOC clock */
  __HAL_RCC_GPIOC_CLK_ENABLE();

  /* Configure PC.13 pin as input floating */
  GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;


  GPIO_InitStructure.Pull = GPIO_PULLUP;
  GPIO_InitStructure.Pin = USER_BUTTON_PIN;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);


  /* Enable and set line 4_15 Interrupt to the lowest priority */
  HAL_NVIC_SetPriority(EXTI4_15_IRQn, 2, 0);
  HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
}

使用特权

评论回复
地板
gaoyang9992006| | 2024-11-20 14:24 | 只看该作者
然后在回调函数写相关的动作
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
  if (GPIO_Pin == USER_BUTTON_PIN)
  {
    /* Toggle LED4 */
    BSP_LED_Toggle(LED4);
  }
}

使用特权

评论回复
5
一路向北lm| | 2024-11-20 16:34 | 只看该作者
在cubemx中 对指定的 io开启外部中断功能,代码会自动生成,只需要在对应的中断回调函数中去执行逻辑

使用特权

评论回复
6
光辉梦境| | 2024-12-12 21:55 | 只看该作者
你用cubemx来配置呗

使用特权

评论回复
7
远山寻你| | 2024-12-13 02:00 | 只看该作者
其实我觉得你可以看例程,官方的例程写的很细致了

使用特权

评论回复
8
暖了夏天蓝了海| | 2024-12-13 03:00 | 只看该作者
直接看正点原子的或者野火的例程就好了

使用特权

评论回复
9
冰春彩落下| | 2024-12-13 04:00 | 只看该作者
我觉得你需要一个cubemx来配置

使用特权

评论回复
10
江河千里| | 2024-12-13 05:00 | 只看该作者

这种配置外部中断多简单呐,你就直接找个例子看看就行了

使用特权

评论回复
11
别乱了阵脚| | 2024-12-13 06:00 | 只看该作者
STM32中配置和使用外部中断

使用特权

评论回复
12
淡漠安然| | 2024-12-13 07:00 | 只看该作者
需要将GPIO引脚配置为输入模式,并选择外部中断的触发方式(如上升沿、下降沿或双边沿)

使用特权

评论回复
13
三生万物| | 2024-12-13 08:00 | 只看该作者
一般需要配置EXTI以使能外部中断,并选择触发方式

使用特权

评论回复
14
一秒落纱| | 2024-12-13 09:00 | 只看该作者
配置嵌套向量中断控制器(NVIC)以使能相应的中断通道

使用特权

评论回复
15
夜阑风雨| | 2024-12-13 10:00 | 只看该作者
编写中断服务程序以处理外部中断事件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

106

主题

941

帖子

1

粉丝