STM32使用SWD默认管脚PA13 PA14
扫描二维码
随时随地手机看文章
前天在STM32一个项目开发时,遇到了一个问题即想使用STM32的SWD默认管脚PA13或者PA14,当时使用的单片机型号为STM32F103VET6,该单片机为100pin单片机,这么多的管脚按理说一般的应用不会出现使用这么的管脚的,但是,在绘制原理图和设计PCB时并未将全部的引脚引出,到最后焊好后可供扩展的IO就只有这个PA13 PA14了,所以就只能使用这个两个IO口了。
实际使用这个两个IO口十分简单,但考虑到很多人没有试过,且肯定和我开始一样存在一个疑问且不敢轻易尝试,那就是:将这个SWD改成普通IO口后,我用SWD方式还能烧写程序么?单片机会不会锁死?
首先,先讲述下怎样将这个SWD端口做为普通IO,总共分如下几步:
1.RCC配置中先RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
2.在GPIO配置中禁用 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);
3.在GPIO中就可以随意定义这个PA13 PA14的管脚模式了。
程序编好后,可以通过SWD模式轻松将这个程序烧写进去,但是注意,当你烧写完这个程序的单片机再去用SWD方式烧写别的程序时,尴尬的事情就发生了,无法如第一次那样顺利的烧写了!为什么呢?因为SWD下载器连接到单片机时,单片机就会因上电工作在运行模式上去了,而这个SWD管脚刚被修改成普通IO了,即无法进行通信,所以解决办法就是不让单片机在运行模式上去,那办法有两个,第一就是通过BOOT1和BOOT0将它设置成ISP模式,第二就是干脆用ISP模式去烧写。
我亲自试验过,以上两种方式均可以,不过如果你就坚持用SWD方式且在运行模式下烧写,答案只有一个,没门!
所以建议:如果你的单片机只有SWD接口的最小系统板,BOOT管脚固定在运行模式配置的,切勿进行以上的修改。如果单片机有SWD和串口,且BOOT管脚引出带跳线的,那么放心修改使用,没问题。不过如果IO口不紧张的情况下,PA13 14做为SWD专用端口,十分不建议修改为普通IO,即便是你硬件有SWD和ISP