|  | 
 
| 
在将小华HC32L110 SWD配置为普通引脚后,想要重新配置为SWD模式,按照网上的方法一直不成功。
x
路线栈欢迎您!您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 看了好几遍手册这方面相关的介绍,也没发现配置有什么问题,直到发现了下图这个介绍:
 
 
 
 网上大部分的做法是配置为普通引脚,再配置回去,而我这边多了一步,就是配置为了普通输出引脚。
 
 参见上图,所以要想再配置回SWD,需要执行完模式切换后再配置为输入才行,这也算一个很隐性的坑,寄存器上根本没有体现这种情况,代码如下:
 
 
 复制代码Clk_SetFunc(ClkFuncSwdPinIOEn, TRUE); //配置SWD引脚为普通引脚模式
 //P31 P27是下载引脚复用
Gpio_InitIOExt(SWCLK_PORT, SWCLK_PIN, GpioDirOut, TRUE, FALSE, TRUE, FALSE);
Gpio_InitIOExt(SWDIO_PORT, SWDIO_PIN, GpioDirOut, TRUE, FALSE, TRUE, FALSE);
Gpio_SetIO(SWCLK_PORT, SWCLK_PIN, TRUE);
Gpio_SetIO(SWDIO_PORT, SWDIO_PIN, TRUE);
Clk_SetFunc(ClkFuncSwdPinIOEn, FALSE); //配置SWD引脚为SWD引脚模式
Gpio_InitIO(SWCLK_PORT, SWCLK_PIN, GpioDirIn);
Gpio_InitIO(SWDIO_PORT, SWDIO_PIN, GpioDirIn);
 | 
 |