本篇应用笔记主要介绍华大半导体 MCU*的SWD端口复用为GPIO端口功能的配置方法及注意事项。
SWD端口简介
SWD配置为GPIO
注意事项及其规避方法
SWD一般用于MCU的调试,用户使用Keil MDK或IAR等开发工具时,可使用该调试接口进行开发调试。本系列的芯片在上电时被自动配置为SWD调试端口,端口配置为上拉输入。
在某些对IO资源比较敏感的应用场合,往往希望能够最大限度利用可用的IO资源,并且在实际的应用场景,SWD是不被使用的,此时就可以将SWD的SWDCLK和SWDIO两个端口复用为GPIO功能。
3.1 SWD端口复用为GPIO功能
SWCLK(PA14)与SWDIO(PA13)引脚可以复用为GPIO。
SWD复用GPIO功能流程如下:
1. 向系统控制寄存器SYSCTRL2依次写入0x5A5A、0xA5A5,使能寄存器改写;
2. 向系统控制寄存器SYSCTRL1.SWD_USE_IO写‘1’;
(此时SWD两个端口PA13(SWDIO)与PA14(SWDCLK)的GPIO功能生效)
3. 参考本系列MCU用户手册端口控制器章节中的操作模式,配置该两个端口的GPIO功能。
3.2 SWD复用GPIO使用注意事项
当SWD端口复用为GPIO功能生效后,通过SWD的在线调试与下载功能就会失效。
3.3 SWD复用GPIO不可再次调试的规避方法
当用户使用该功能,需要再次通过SWD调试时,可参考如下几种方法(不仅限于)进行操作:
- 通过离线串口、ISP下载其他没有复用SWD为GPIO的应用程序或擦除用户区程序,恢复SWD在线调试和下载功能;
- 在开发调试阶段,在该功能生效前增加2秒以上的延时;
- 在开发调试阶段,在该功能生效前增加外部控制信号,以控制该功能是否生效(如:当检测到某个信号为高电平时该功能生效、或通过中断服务程序取消该复用功能……)
- 通过自己开发的IAP进行用户程序更新;
适用对象:
产品型号
HC32L13
HC32L130E8PA
HC32L130F8UA
HC32L130J8TA
HC32L136J8TA
HC32L136K8TA
HC32F03
HC32F030E8PA
HC32F030F8UA
HC32F030F8TA
HC32F030H8TA
HC32F030J8TA
HC32F030K8TA
HC32L07
HC32L072PATA
HC32L072KATA
HC32L072JATA
HC32L073PATA
HC32L073KATA
HC32L073JATA
HC32F07
HC32F072PATA
HC32F072KATA
HC32F072JATA
HC32L17
HC32L176PATA
HC32L176MATA
HC32L176KATA
HC32L176JATA
HC32L170JATA
HC32L170FAUA
HC32F17
HC32F176PATA
HC32F176MATA
HC32F176KATA
HC32F176JATA
HC32F170JATA
HC32F170FAUA
HC32L19
HC32L196PCTA
HC32L196MCTA
HC32L196KCTA
HC32L196JCTA
HC32L190JCTA
HC32L190FCUA
HC32F19
HC32F196PCTA
HC32F196MCTA
HC32F196KCTA
HC32F196JCTA
HC32F190JCTA
HC32F190FCUA