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

[复制链接]
 楼主| 欢乐家园 发表于 2024-10-30 14:53 | 显示全部楼层 |阅读模式

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

gaoyang9992006 发表于 2024-11-20 14:22 | 显示全部楼层
你是说的IO中断吗?
如果不会使用HAL库配置,那么就去用CubeMX配置IO,可以图形化配置,另外还可以给你指定的IO起一个新的名字。
gaoyang9992006 发表于 2024-11-20 14:23 | 显示全部楼层
例如下面这种配置方式
  1. static void EXTI4_15_IRQHandler_Config(void)
  2. {
  3.   GPIO_InitTypeDef   GPIO_InitStructure;


  4.   /* Enable GPIOC clock */
  5.   __HAL_RCC_GPIOC_CLK_ENABLE();

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


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


  11.   /* Enable and set line 4_15 Interrupt to the lowest priority */
  12.   HAL_NVIC_SetPriority(EXTI4_15_IRQn, 2, 0);
  13.   HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
  14. }
gaoyang9992006 发表于 2024-11-20 14:24 | 显示全部楼层
然后在回调函数写相关的动作
  1. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
  2. {
  3.   if (GPIO_Pin == USER_BUTTON_PIN)
  4.   {
  5.     /* Toggle LED4 */
  6.     BSP_LED_Toggle(LED4);
  7.   }
  8. }
一路向北lm 发表于 2024-11-20 16:34 | 显示全部楼层
在cubemx中 对指定的 io开启外部中断功能,代码会自动生成,只需要在对应的中断回调函数中去执行逻辑
光辉梦境 发表于 2024-12-12 21:55 | 显示全部楼层
你用cubemx来配置呗
远山寻你 发表于 2024-12-13 02:00 | 显示全部楼层
其实我觉得你可以看例程,官方的例程写的很细致了

暖了夏天蓝了海 发表于 2024-12-13 03:00 | 显示全部楼层
直接看正点原子的或者野火的例程就好了

冰春彩落下 发表于 2024-12-13 04:00 | 显示全部楼层
我觉得你需要一个cubemx来配置
江河千里 发表于 2024-12-13 05:00 | 显示全部楼层

这种配置外部中断多简单呐,你就直接找个例子看看就行了
别乱了阵脚 发表于 2024-12-13 06:00 | 显示全部楼层
STM32中配置和使用外部中断

淡漠安然 发表于 2024-12-13 07:00 | 显示全部楼层
需要将GPIO引脚配置为输入模式,并选择外部中断的触发方式(如上升沿、下降沿或双边沿)

三生万物 发表于 2024-12-13 08:00 | 显示全部楼层
一般需要配置EXTI以使能外部中断,并选择触发方式

一秒落纱 发表于 2024-12-13 09:00 | 显示全部楼层
配置嵌套向量中断控制器(NVIC)以使能相应的中断通道

夜阑风雨 发表于 2024-12-13 10:00 | 显示全部楼层
编写中断服务程序以处理外部中断事件

l63t89 发表于 2024-12-30 23:59 | 显示全部楼层
如果使用 SysTick 中断,你可能需要调整中断优先级,避免其他中断导致 SysTick 中断丢失。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

1029

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部