面霸儿 2023-11-20 19:01 采纳率: 0%
浏览 26

【GD32F330裸机-KEIL5环境】使用外部中断,debug卡死问题

在注释掉PA1作为外部中断的配置语句后,debug可以正常运行。请问,我这个中断配置有问题吗?debug出现异常的原因可能在哪?

void AD_GpioInit(void)
{
        /* 配置时钟 */
    rcu_periph_clock_enable(AD_GPIO_CLOCK);
        rcu_periph_clock_enable(RCU_CFGCMP);
       
    /* 配置PA1 */
    gpio_mode_set(AD_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, AD_GPIO_PIN);
       
    /* 将PA1映射到EXTI1 */
        syscfg_exti_line_config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN1);

        /* 配置EXTI1 */
    exti_init(EXTI_1, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
    exti_interrupt_flag_clear(EXTI_1);
        nvic_irq_enable(EXTI0_1_IRQn, 2, 2);

}

img

img

img

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-20 20:10
    关注

    【以下回答由 GPT 生成】

    问题回答

    根据您提供的信息,您遇到了在配置外部中断时出现debug卡死的问题。您怀疑是中断配置有问题,并且想了解 debug 异常的可能原因。

    首先,让我们分析一下。

    中断配置是否正确

    中断配置可能存在一些问题,导致 debug 异常。以下是您可以检查中断配置的步骤:

    1. 确保正确地配置了外部中断的引脚。可能是 PA1 引脚配置有误。
    2. 检查中断触发方式的配置。根据您的需求选择合适的触发方式,例如边沿触发或电平触发。
    3. 确保中断优先级被正确配置,并与其他中断优先级相互协调。确保中断优先级的配置不会导致优先级倒置的情况发生。

    您可以提供您的中断配置代码,以便我们进行更具体的分析和排查。

    debug 异常的可能原因

    如果中断配置正确,但仍然出现 debug 异常,以下是可能的原因:

    1. 中断服务函数可能存在错误。请确保中断服务函数的代码逻辑正确,没有死循环或其他导致系统无法返回的情况。
    2. 中断优先级设置不当。中断优先级设置不正确可能导致其他中断无法得到及时处理,从而导致系统异常。
    3. 中断控制器配置问题。中断控制器的配置可能有误,导致中断无法正常触发或处理。
    4. 其他硬件或软件问题。问题可能不仅限于中断配置本身,还可能与其他硬件或软件相关。

    为了进一步分析 debug 异常的原因,您可以提供您的 debug 环境配置和代码。

    回顾您的问题描述以及尝试提供更具体的信息,有助于更精准地找出问题根源。如果可能,请提供您的中断配置代码、中断服务函数代码以及 debug 环境配置。这样我就可以更好地帮助您解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月20日

悬赏问题

  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿
  • ¥15 nginx的使用与作用
  • ¥100 关于#VijeoCitect#的问题,如何解决?(标签-ar|关键词-数据类型)
  • ¥15 一个矿井排水监控系统的plc梯形图,求各程序段都是什么意思
  • ¥50 安卓10如何在没有root权限的情况下设置开机自动启动指定app?
  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要