打印
[软件资料]

JTAG脚用作普通GPIO

[复制链接]
48|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2025-4-30 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将JTAG引脚用作普通IO时,需要通过复用功能重映射来释放调试接口占用的引脚资源。
void JTAG_To_GPIO_Config(void)
{
    // 关闭JTAG功能(保留SWD调试接口)
    AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;

    // 配置释放的JTAG引脚为普通IO
    // PA13/PA14/PA15配置
    GPIO_InitTypeDef GPIO_InitStruct = {0};
   
    // PA13 -> 输出模式
    GPIO_InitStruct.Pin = GPIO_PIN_13;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
   
    // PA14 -> 输入模式带上拉
    GPIO_InitStruct.Pin = GPIO_PIN_14;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
   
    // PB3 -> 复用功能(如SPI1_SCK)
    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;      // 复用推挽输出
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
完全禁用SWD后,将无法通过调试器更新程序
建议保留SWD功能(AFIO_MAPR_SWJ_CFG_JTAGDISABLE)
若必须禁用所有调试接口,需保留BOOT0引脚用于ISP编程

使用特权

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

本版积分规则

1938

主题

13994

帖子

58

粉丝