如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。
// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4; GPIO_InitStructure.GPIO_...
1. 检查代码配置 现象:代码中可能通过AFIO寄存器禁用了JTAG。 // 检查是否在代码中执行了以下操作(禁用JTAG,启用SWD) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 解决:修改代码,重新启用JTAG: // 恢复默认调试接口(JTAG+SWD) GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); 或直接注释掉相...
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关掉JTAG,不关SWGPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);//关掉SW 其实想用PA15的话只用第一句就行,但是我多打了下面一句,导致后面的程序下不进去。解决办法有两种: 一、通过boot解决 原理: 开板默认JTAG和SWD接口都是打开的,BOOT0是低电平...
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 举例:PA15管脚默认为JTAG接口的JTDI,做普通IO口使用时需Remap,否则将出现一直输出高电平的情况。 void BUZ_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); ...
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);为了防止JTAG口禁用之后不能再下载程序,我还做了...
GPIO_Remap_SWJ_NoJTRST// 完全SWJ(恢复引脚的默认功能)GPIO_Remap_SWJ_JTAGDisable// 关闭JTAG,启用SW-DPGPIO_Remap_SWJ_Disable//关闭JTAG-DP,关闭SW-DP 提供了一个函数,可以进行重映射操作 voidGPIO_PinRemapConfig(uint32_tGPIO_Remap,FunctionalStateNewState); ...
通过调用HAL_GPIO_PinRemapConfig()函数来禁用JTAG接口。对于STM32H7,通常使用GPIO_PIN_REMAP_SWJ_DISABLE参数来禁用JTAG/SWD接口。 以下是一个示例代码片段,展示了如何在STM32H7中使用HAL库禁用JTAG接口: c #include "stm32h7xx_hal.h" void DisableJTAG(void) { // 使能GPIOA和GPIOB端口的时钟 __HAL_RCC_...
三、SWD和JTAG被关闭原因 正搞板子发现程序下载不进去了,到处查找原因,发现自己在程序中不小心把STM32的SWD和JTAD接口都给关了,如下就是关掉这两个接口的两句程序: GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关掉JTAG,不关SW GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//关掉SW 1 ...
所以我们如果要正常使用他们只需要在开启时钟后关闭该默认功能。 具体方法如下面 //首先开启AFIO时钟 RCC_APB2Per iphClockCmd(RCC_APB2Per iph_AFIO,ENABLE); //然后关闭JTAG保留SWD的功能 GPIO_PINRemapConfyg(GPIO_Remap_SWJ_JTAGDisable,ENABLE); 这样就可以解决了。