SWD 引脚将被释放以用作普通 GPIO后,怎样再次使用SWD调试?
大家好。一般情况下,上电后 PA13/PA14 引脚均被初始化为可被调试器使用的专用引脚。请问,当设置 SYSCTRL1 .SWD_USE_IO 寄存器来禁止 SWD 引脚的调试功能,SWD 引脚将被释放以用作普通 GPIO。
此后,怎样再次使用SWD调试? SWD 调试编程端口复用为 I/O 功能
SWD 端口作为该系列 MCU 的调试和下载端口,用户可根据实际需求选择是否预留该端口作为调试或量产编程使用。如果不需要使用 SWD 端口作为调试编程,SWCLK 与 SWDIO 引脚可以复用为 I/O 引脚。复用 I/O 功能参考流程如下:
GPIO 模块时钟控制功能打开:PERI_CLKEN.GPIO 置为 1
系统控制寄存器的 SWD_USE_IO 时钟控制位(SYSCTRL1. SWD_UIO)使能
P27_SEL.SEL 与 P31_SEL.SEL 设置为 0
P2DIR.P27 与 P3DIR.P31 设置为输入或输出
注意:- 从上电到 SWD 被复用配置为 I/O 端口生效为止,P27 和 P31 引脚的电平默认为高电平,因此在外围电路的设计中,应加以注意和规避。
- 当把 SWD 端口复用为 I/O 功能时,通过 SWD 的在线调试与下载功能就会失效。
- 在用户调试时,可以通过串口擦除或下载其他没有复用 SWD 的程序恢复 SWD 在线调试和下载功能,或者在应用程序中复用 SWD 端口之前添加几秒的延时。 启动后延迟一段时间再切换成GPIO,每次复位后还是SWD,方便下次更新程序 在复用SWD引脚为IO之前,加几秒延时,下次复位或者上电后,可以再次下载和debug 需要在代码里面增加一些延时,就好用多了。 ayb_ice 发表于 2021-4-1 11:47
启动后延迟一段时间再切换成GPIO,每次复位后还是SWD,方便下次更新程序
有没有可能实现以下操作:
1、在用作GPIO时,切换成GPIO。比方用于UART0。
2、完成UART0通信后,再切换回SWD。 nongfuxu 发表于 2021-4-2 19:51
有没有可能实现以下操作:
1、在用作GPIO时,切换成GPIO。比方用于UART0。
2、完成UART0通信后,再切换回 ...
可以的, ayb_ice 发表于 2021-4-6 08:33
可以的,
真的假的,真的嘛? nongfuxu 发表于 2021-4-6 13:13
真的假的,真的嘛?
这不很正常吗,就是几个寄存器切换而已 ayb_ice 发表于 2021-4-6 08:33
可以的,
同样问题,学习了。MARK nongfuxu 发表于 2021-4-2 19:51
有没有可能实现以下操作:
1、在用作GPIO时,切换成GPIO。比方用于UART0。
2、完成UART0通信后,再切换回 ...
同样问题,学习了。MARK 没用过,倒是长见识了 nongfuxu 发表于 2021-4-2 19:51
有没有可能实现以下操作:
1、在用作GPIO时,切换成GPIO。比方用于UART0。
2、完成UART0通信后,再切换回 ...
就是几个寄存器操作切换而已 上电或者复位 上电之后延时一段时间然后复用成IO口 那仿真呢?是不是也不能在线调试了?
页:
[1]