现在用PA15做实验, 代码: GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); // DBGMCU->CR |= ((uint32_t)0x00000070); // enable PA15 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //普通输出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //5 è·è¸ªé ç½® GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIO GPIO_SetBits(GPIOA, GPIO_Pin_15); 这是设置有错误么 |
JTAG PINæè¿°
DBGMCU å¯åå¨
这种早期的STM32在这个功能上面,有bug。
解决的办法,是在每次修改引脚的状态之前,再进行一次转换设定:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
(可能只用一条,AFIO的时钟不能关)