在stm32f103中 这三个引脚默认是作为JTAG使用的 若是想要作为普通的IO口来进行使用 需要将PB3 PB4 PA15三个引脚设置一下 。在这里有两种方式 ,方式一:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
DBGMCU->CR &= ~(uint32_t)DBGMCU_CR_TRACE_IOEN; //直接写寄存器 下载后IO直接变成普通IO使用,否则需要上电重启才能生效
方式二:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,EANBLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);// 直接调用重映射函数,关闭jtag , 开启swd
第二种方式与第一种相比,有以下的缺点:使用第二种方式无法用jtag及swd下载调试!若使用了, 唯有改变启动模式来使用JTAG调试。
以下是启动模式:
BOOT1=X BOOT0=0 从用户闪存(flash)启动
BOOT1=1 BOOT0=1 从内置SRAM(内存)启动
BOOT1=0 BOOT0=1 从系统存储器启动