|
路线栈欢迎您!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在将小华HC32L110 SWD配置为普通引脚后,想要重新配置为SWD模式,按照网上的方法一直不成功。
看了好几遍手册这方面相关的介绍,也没发现配置有什么问题,直到发现了下图这个介绍:
网上大部分的做法是配置为普通引脚,再配置回去,而我这边多了一步,就是配置为了普通输出引脚。
参见上图,所以要想再配置回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);
复制代码 |
|