[其他ST产品] 在解除了PB3引脚的 JTAG 调试后,要将其配置为外部中断引脚

[复制链接]
887|3
 楼主| 大鹏2365 发表于 2024-3-28 16:14 | 显示全部楼层 |阅读模式
引脚功能设置为输入模式:外部中断需要将引脚设置为输入模式。在 STM32CubeMX 或者直接在代码中配置 GPIO,将 PB3 设置为输入模式。

配置外部中断触发模式:确定外部中断的触发条件,例如上升沿、下降沿、或者双边沿触发。在代码中使用 EXTI 相关的寄存器配置触发模式。

使能外部中断中断线:在 NVIC (Nested Vector Interrupt Controller) 中使能相应的外部中断中断线。

 楼主| 大鹏2365 发表于 2024-3-28 16:14 | 显示全部楼层
下面是一个简单的代码示例,假设你想要配置 PB3 为上升沿触发的外部中断:

  1. #include "stm32f1xx.h"

  2. void EXTI3_IRQHandler(void) {
  3.     // 处理中断事件
  4.     // 清除中断标志
  5.     EXTI->PR |= EXTI_PR_PR3;
  6. }

  7. int main(void) {
  8.     // 启用外部中断中断线
  9.     NVIC_EnableIRQ(EXTI3_IRQn);

  10.     // 使能时钟
  11.     RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;

  12.     // 配置 PB3 为浮空输入
  13.     GPIOB->CRL &= ~(GPIO_CRL_MODE3 | GPIO_CRL_CNF3);
  14.     GPIOB->CRL |= GPIO_CRL_CNF3_0;

  15.     // 配置外部中断触发模式为上升沿触发
  16.     EXTI->RTSR |= EXTI_RTSR_TR3;

  17.     // 选择 PB3 为外部中断线路 3
  18.     AFIO->EXTICR[0] &= ~(AFIO_EXTICR1_EXTI3);

  19.     // 使能外部中断线路 3
  20.     EXTI->IMR |= EXTI_IMR_MR3;

  21.     while (1) {
  22.         // 主循环
  23.     }

  24.     return 0;
  25. }
 楼主| 大鹏2365 发表于 2024-3-28 16:14 | 显示全部楼层
这段代码中,EXTI3_IRQHandler 是 PB3 对应的外部中断的中断处理函数。在 main 函数中,首先使能了外部中断的中断线,然后配置了相应的 GPIO 和外部中断触发模式,并最终使能了外部中断线。
4c1l 发表于 2024-8-31 22:25 | 显示全部楼层
设置引脚为输入模式、配置外部中断触发模式、使能外部中断中断线。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

702

帖子

0

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