STM32的JTAG关闭方法和SWD的使用
2021-10-30 15:56:26
hongling
JTAG占用太多IO口,而SWD只需要两条线,在IO资源紧张的时候,关闭JTAG是很有必要的。
网上很多关闭JTAG的方法很简单,一句重定义就可以了。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//IO口重定义,JTAG关闭
但是,要注意一个事情:务必在关闭JTAG前打开AFIO的时钟,否则关不掉,JTAG占的那几个IO也不能用。
所以,应该是这样:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开AFIO时钟使能
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//IO口重定义,JTAG关闭
关于SWD的使用,很多人说两条线就可以了,手册里也说使用两条线即可,但还是有网友说两条线无法调试。
其实问题出在复位上,这一点手册里没有提到。
如果仅用双线调试,必须释放掉RST脚,接上拉电阻是可以的,但不可以直接接VDD,很多场合RST脚是受控制的,例如外部复位芯片、其他主控单片机等。
所以,不妨在其之间串一个1K电阻,问题就解决了。