STM32 引脚重映射问题

2019-07-21 03:49发布

目标:需要在PA15上输出PWM波

PA15是jtag的jtdi引脚

步骤:
1、__HAL_RCC_AFIO_CLK_ENABLE();  打开AFIO时钟
2、__HAL_AFIO_REMAP_SWJ_NOJTAG();  关闭JTAG,保留SWD ,释放PA15
3、__HAL_AFIO_REMAP_TIM2_PARTIAL_1(); 把TIM2的CH1映射至PA15


以上操作后产生了一个问题:

再次下载不能下载,需要先按住复位才能下载,再次向咨询一下大神,有没有碰到这种情况的,为什么关闭JTAG会导致SWD也不能使用,但是如果我不重映射TIM2就没有问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
gangzilife
1楼-- · 2019-07-21 07:30
csmjmcc 发表于 2019-3-28 16:50
1、有使用这种情形的方案。
2、因程序烧写后,板上电复位后即进入你的程序,JTAG端口就被你的程序映射了。 ...

static void remap(void)
{
        __HAL_RCC_AFIO_CLK_ENABLE();
       
        volatile uint32_t map_copy = AFIO->MAPR;
        map_copy &= ~((7 << 24) + (3 << 8));
        map_copy |= (2 << 24) + (1 << 8);
        AFIO->MAPR = map_copy;
}


一次全部重映射  OK
gangzilife
2楼-- · 2019-07-21 08:22
 精彩回答 2  元偷偷看……
csmjmcc
3楼-- · 2019-07-21 13:04
1、有使用这种情形的方案。
2、因程序烧写后,板上电复位后即进入你的程序,JTAG端口就被你的程序映射了。
3、烧写除了用复位键外,我烧写程序通常不用复位方法,而是点击烧写,立即上电方式烧写。

一周热门 更多>