[CW32F030系列] CW32F030CxTx--swd_io复用

[复制链接]
 楼主| 51xlf 发表于 2022-8-26 13:38 | 显示全部楼层 |阅读模式
使用库函数把SWD下载端口PA13 PA14 分别复用为UART0_RXD UART0_TXD的方法
SWD一般用于MCU的调试,用户使用Keil MDK或IAR等开发工具时,可使用该调试接口进行开发调试。本系列的芯片在上电时被自动配置为SWD调试端口,端口配置为上拉输入。
在某些对IO资源比较敏感的应用场合,往往希望能够大限度利用可用的IO资源,并且在实际的应用场景,SWD是不被使用的,此时就可以将SWD的SWDCLK和SWDIO两个端口复用为GPIO功能。

3.1 SWD端口复用为GPIO功能
SWCLK(PA14)与SWDIO(PA13)引脚可以复用为GPIO。


官网提供的代码如下所示
  1.     //Open GPIOA Clk
  2.     CW_SYSCTRL->AHBEN_f.GPIOA = 1;
  3.     //将PA13 / PA14 配置成通用GPIO功能
  4.     GPIO_SWD2GPIO();
  5.     //配置 PA13 / PA14 为数字功能 - 输出
  6.     REGBITS_CLR(CW_GPIOA->ANALOG, bv13 | bv14);
  7.     REGBITS_CLR(CW_GPIOA->DIR, bv13 | bv14);

  8.     tmp32 = GetTick() + 10000;
  9.     while (GetTick() < tmp32) //在10秒内为GPIO功能
  10.     {
  11.         PA13_SETHIGH();
  12.         PA14_SETHIGH();
  13.         PA14_SETLOW();
  14.         PA13_SETLOW();
  15.         PA14_SETHIGH();
  16.         PA14_SETLOW();
  17.     }


但是不建议这样操作,因为你会发现不能使用keil烧录了。哈哈哈

 楼主| 51xlf 发表于 2022-8-26 13:43 | 显示全部楼层
官网提供测试代码
    //复位后延时2秒再将SWD接口变成GPIO,防止芯片被锁死
    InitTick(8000000); //SYSTICK 的工作频率为8MHz,每ms中断一次
    SysTickDelay(2000);
Bowclad 发表于 2022-9-5 21:53 | 显示全部楼层
,,,,没看到下面帖子去试了一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

547

主题

9919

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部