打印
[其他ST产品]

在解除了PB3引脚的 JTAG 调试后,要将其配置为外部中断引脚

[复制链接]
114|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大鹏2365|  楼主 | 2024-3-28 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引脚功能设置为输入模式:外部中断需要将引脚设置为输入模式。在 STM32CubeMX 或者直接在代码中配置 GPIO,将 PB3 设置为输入模式。

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

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

使用特权

评论回复
沙发
大鹏2365|  楼主 | 2024-3-28 16:14 | 只看该作者
下面是一个简单的代码示例,假设你想要配置 PB3 为上升沿触发的外部中断:

#include "stm32f1xx.h"

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

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

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

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

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

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

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

    while (1) {
        // 主循环
    }

    return 0;
}

使用特权

评论回复
板凳
大鹏2365|  楼主 | 2024-3-28 16:14 | 只看该作者
这段代码中,EXTI3_IRQHandler 是 PB3 对应的外部中断的中断处理函数。在 main 函数中,首先使能了外部中断的中断线,然后配置了相应的 GPIO 和外部中断触发模式,并最终使能了外部中断线。

使用特权

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

本版积分规则

33

主题

479

帖子

0

粉丝