You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ASF的SAMD21非预定义引脚外部中断配置方法咨询

问题

我正在学习使用ASF(Atmel Software Framework)对Atmel SAMD系列器件进行编程,尝试开发一个简单的中断测试应用。参考了Microchip官方的外部中断示例后,发现示例使用了板载预定义引脚的宏BUTTON_0_EIC_PIN、BUTTON_0_EIC_MUX和BUTTON_0_EIC_LINE来配置外部中断,但我需要为非预定义的普通引脚(比如连接到EXTINT[2]中断通道的PA18引脚)配置中断,不清楚该如何替换这三个宏。

示例代码如下:

void configure_extint_channel(void)
{
    struct extint_chan_conf config_extint_chan;
    extint_chan_get_config_defaults(&config_extint_chan);
    config_extint_chan.gpio_pin           = BUTTON_0_EIC_PIN;
    config_extint_chan.gpio_pin_mux       = BUTTON_0_EIC_MUX;
    config_extint_chan.gpio_pin_pull      = EXTINT_PULL_UP;
    config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;
    extint_chan_set_config(BUTTON_0_EIC_LINE, &config_extint_chan);
}

解决方案

针对PA18引脚(连接EXTINT[2]通道),直接替换三个宏为对应的值即可,具体对应关系和含义如下:

  1. BUTTON_0_EIC_PIN 替换为 PIN_PA18
    ASF中通用GPIO引脚的命名规则为PIN_P<端口号><引脚号>,端口号用大写字母(A/B/C等),引脚号为两位数字,直接对应硬件引脚标识。

  2. BUTTON_0_EIC_MUX 替换为 MUX_PA18A_EIC_EXTINT2
    SAMD系列引脚的复用功能由MUX宏定义,格式为MUX_P<端口号><引脚号><功能组>_<外设>_<通道>。PA18对应EXTINT2的复用功能为MUX_PA18A_EIC_EXTINT2,其中A表示该引脚的第一组复用功能(部分引脚有多组复用选项,需参考器件datasheet的引脚复用表确认)。

  3. BUTTON_0_EIC_LINE 替换为 2
    该参数对应外部中断的通道号,EXTINT[2]的通道号直接用数字2即可。

替换后的完整代码如下:

void configure_extint_channel(void)
{
    struct extint_chan_conf config_extint_chan;
    extint_chan_get_config_defaults(&config_extint_chan);
    config_extint_chan.gpio_pin           = PIN_PA18;
    config_extint_chan.gpio_pin_mux       = MUX_PA18A_EIC_EXTINT2;
    config_extint_chan.gpio_pin_pull      = EXTINT_PULL_UP;
    config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;
    extint_chan_set_config(2, &config_extint_chan);
}

通用配置规则

如果要配置其他引脚,遵循以下步骤:

  • 确认引脚对应的EXTINT通道:查看器件datasheet的引脚描述,找到引脚关联的EXTINTx通道号
  • 构造引脚宏:按照PIN_P<端口><引脚号>格式编写,比如PB05对应PIN_PB05
  • 构造复用宏:参考datasheet的引脚复用表,找到该引脚对应EXTINT通道的MUX定义,格式通常为MUX_P<端口><引脚号><功能组>_EIC_EXTINT<通道号>
  • 中断通道号直接使用EXTINT后的数字

内容的提问来源于stack exchange,提问作者aulven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:05:15