STM32/GD32复用SWDIO/SWCLK的方法

 起因

因为项目使用gd32的gpio都使用完了,只剩下SWDIOSWCLK可以使用,所以想着能不能把这两个管脚给利用起来,使资源的利用率最大化。

查询gd32的datasheet发现PA13/PA14管脚默认的功能是SWDIO跟SWCLK,但是还有一个默认功能是GPIO,但是把它作为默认GPIO,如果进行调试呢?

在咨询供应商后,给出得方案是在初始化的时候,先进行一段时间的延时,再将PA13、PA14设置为通用GPIO口。但是这种方法不能满足我们的需求,我需要在启动之后立马就能对这两个GPIO口进行操作。所以考虑了另外一种方法:

使用外部通讯串口对GD32进行升级,实现对固件更新的需求

  1. 这里会有一个问题没有办法解决:对复用的SWDIO跟SWCLK进行调试,这个需要注意!

驱动代码部分

#define SWDIO_PIN                               GPIO_PIN_13
#define SWDIO_PIN_GPIO_PORT                     GPIOA
#define SWDIO_PIN_GPIO_CLK                      RCU_GPIOA
  
//PA13 SWDIO input    
gpio_mode_set(SWDIO_PIN_GPIO_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, SWDIO_PIN);

uint8_t KeyDetectSwdio(void)
{    
    return gpio_input_bit_get(SWDIO_PIN_GPIO_PORT, SWDIO_PIN);
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STM32SWDIOSWCLK引脚是用于调试和编程的接口。SWDIO是单线调试接口数据线,用于传输调试信息和程序数据。SWCLK是单线调试接口时钟线,用于同步数据传输。这两个引脚通常与NRST(复位)和GND(地)一起使用,组成了STM32的SWD调试接口。 ### 回答2: STM32是一款微控制器,其SWDIOSWCLK引脚是SWD(Serial Wire Debug)接口的两个核心引脚。SWD接口是STM32芯片调试和下载程序的一种接口方式,通过这两个引脚可以实现芯片与仿真器(如J-Link,ST-Link)的通信。在STM32的调试和开发过程中,SWDIOSWCLK引脚是非常重要的,需要充分了解其工作原理和使用方法SWDIO引脚是双向引脚,用于数据传输,既可以发送命令数据,也可以接收芯片返回的信息数据。SWCLK引脚是时钟引脚,用于同步芯片与仿真器之间的数据传输,也可以控制芯片的时序。在SWD接口中,SWCLK引脚是必须的,而SWDIO引脚是可选的,有些芯片可能只有JTAG接口。 在使用SWD接口调试STM32芯片时,需要连接SWDIOSWCLK引脚到仿真器上,同时需要连接NRST引脚到仿真器上,用于芯片的复位。通过仿真器发送命令数据和时钟信号,就可以实现芯片的调试和程序下载。在使用SWD接口时,需要特别注意时钟频率的选择,一般默认为1MHz,但是如果芯片工作频率较高或者连续读写占用时间较长,可以适当调高时钟频率,提高调试和下载效率。 总之,SWDIOSWCLK引脚STM32芯片调试和下载的重要接口,需要充分了解其工作原理和使用方法,才能更好地进行芯片开发和调试工作。 ### 回答3: STM32SWDIOSWCLK是用于调试和编程的引脚,分别对应于Serial Wire Debug Data Input/Output和Serial Wire Debug Clock。在STM32微控制器中,这两个引脚用于与调试器或编程器进行通信,以便在调试或编程过程中读取和写入芯片内部的寄存器和存储器。 SWDIO引脚是用于与调试或编程单元进行数据传输的引脚,它同时也是一个双向引脚。在调试或编程过程中,调试或编程单元可以向SWDIO引脚输出数据,芯片则通过相同的引脚将响应数据发送回调试或编程单元。SWDIO引脚还可以用于扫描链和调试接口测试等应用。 SWCLK引脚是由调试或编程单元提供的时钟引脚,它用于控制数据传输的时序,并提供时钟信号以进行芯片的调试或编程。当调试或编程单元需要从STM32处理器中读取或写入数据时,它将发送时钟信号到SWCLK引脚,从而启动传输过程。同样,芯片也通过SWCLK引脚来响应和传输数据。 在STM32微控制器中,SWDIOSWCLK引脚是非常重要的引脚,在调试和编程过程中起着至关重要的作用。对于STM32的调试和编程,这两个引脚是必不可少的,同时,使用SWDIOSWCLK也允许在不占用太多引脚的情况下完成芯片调试和编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪_彩虹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值