shiyang1212 发表于 2014-7-9 09:28:36

关于stm32f103VE的jtag引脚复用问题

 使用CPU:STM32F103VE
JTAG引脚的PA15想复用为普通GPIO
测试代码:
void GPIO_Remap_Test(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    
    GPIO_PinRemapConfig(AFIO_MAPR_SWJ_CFG_JTAGDISABLE, ENABLE);
    
    // /CS : PA15(GPIO_Pin_15)
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
    while(1){
        GPIO_SetBits(GPIOA, GPIO_Pin_15);
        GPIO_ResetBits(GPIOA, GPIO_Pin_15);
    }
}
 
使用库函数关闭jtag,还是直接操作寄存均无效果,PA15一直保持高电平,请教各位,谢谢!

发表于 2014-7-9 09:33:31

RE:关于stm32f103VE的jtag引脚复用问题

你加个延时测试一下。你这样他会一直在执行的,所以看不到。

巅峰残狼 发表于 2014-7-11 21:27:57

RE:关于stm32f103VE的jtag引脚复用问题

如何将STM32的JTAG下载引脚:JTDO、JTDI、JTCK 当成普通IO口进行操作?
步骤:
1、打开复用时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,EANBLE);
2、调用重映射函数:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
进行上述配置后即可将JTAG下载引脚当成普通GPIO来使用了!
显然,楼主的配置没有问题,可能就是楼上所说的间隔问题,加个延时试试!祝你好运

有缘于你 发表于 2014-7-12 08:43:23

RE:关于stm32f103VE的jtag引脚复用问题

GPIO_SetBits(GPIOA, GPIO_Pin_15);
GPIO_ResetBits(GPIOA, GPIO_Pin_15);之间加个延时试试

aaa999kk 发表于 2014-7-17 16:53:38

RE:关于stm32f103VE的jtag引脚复用问题

要么加个中断检查下

feixiang20 发表于 2014-7-23 02:23:20

RE:关于stm32f103VE的jtag引脚复用问题

延长间隔时间会出现其他问题吗
页: [1]
查看完整版本: 关于stm32f103VE的jtag引脚复用问题