STM32G0学习手册——使用SWD接口进行调试 (HAL库)

22 篇文章 34 订阅
15 篇文章 3 订阅

STM32G0系列提供了SWD接口调试,所以先要熟悉如何调试,接下来才能把代码烧录到芯片里面去。

  • 首先我们先新建工程,如果不是官方开发板就点"start My project from MCU",选择对应的芯片型号。我这里选G071C8,进入工程。

  •  在"System Core"中,找到"SYS";或者在上方搜索框中输入SYS快速定位。
  • 在"SYS Mode and Configuration"中,勾√ 上"Serial Wire",就是启用swd调试口,同时你会注意到引脚视图中PA14/PA13变成绿色,显示它的功能。左边GPIO字也会变色,表明GPIO选项里面也有更改配置。

  •  点击"Project Manager"—"Project",写上项目名称,项目保存路径,"Application Structure"选择"Basic","Toolchain/IDE"选择"MDK-ARM","V5"(版本根据你安装软件版本来填,在mdk软件-help-about能看到)。

  • 点击"GENERATE CODE",生成代码。在工程代码的"MDK-ARM"目录下,使用MDK软件打开工程文件。
  • 硬件连接:

ST-Link                开发板

SWDIO ---------- PA14

SWCLK ---------- PA13

  VCC    ----------  VCC

 GND    ----------  GND

  • 在上一篇文章中给,我们已经装好st-link驱动。直接点击编译。在点击下载烧录。就完成了。因为只是开启一个swd,所以板子不会有任何可见的变化。

为什么我这没配置时钟树呢?因为使用了芯片自带HSI。

       

没有开启SWD调试,烧录代码会如何?

如果我们在写代码时,忘记了开启SWD调试接口,代码已经烧录进去。芯片就会关闭调试接口,第二次烧录时候软件会提示连接不上芯片。按照一下操作重新开启调试接口:

1.在cubemx工程里面添加上调试接口重新生成代码;

2.在MDK软件里重新编译一下;

3.按住开发板复位键不要松开,点击软件烧录按钮,在放开复位键,代码就能烧录到芯片。重新开启了调试接口。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
STM32G0系列芯片可以通过SWD(Serial Wire Debug)接口进行调试和编程。SWD接口使用两根线(SWDIO和SWCLK)进行调试和编程,其中SWDIO用于数据传输,SWCLK用于时钟同步。 在STM32G0系列芯片中,SWD接口可以通过两种方式实现:使用内部SWD接口使用GPIO模拟SWD接口使用内部SWD接口可以获得更高的速度和更稳定的性能,但需要占用一些特定的引脚。使用GPIO模拟SWD接口则可以避免占用特定引脚,但速度和稳定性不如内部SWD接口。 要使用SWD接口进行调试和编程,你需要使用支持SWD接口调试器,如ST-Link。在连接好调试器和目标板之后,你需要配置SWD接口的引脚和时钟,并使用调试器软件进行调试和编程。 以下是使用内部SWD接口实现SWD接口的示例代码: ```C #include "stm32g0xx.h" void SWD_Init(void) { // 使能GPIO端口时钟 RCC->IOPENR |= RCC_IOPENR_GPIOAEN; // 配置SWDIO引脚为复用功能 GPIOA->MODER &= ~GPIO_MODER_MODE13_Msk; GPIOA->MODER |= GPIO_MODER_MODE13_1; // 配置SWCLK引脚为复用功能 GPIOA->MODER &= ~GPIO_MODER_MODE14_Msk; GPIOA->MODER |= GPIO_MODER_MODE14_1; // 配置SWDIO引脚的复用功能为SWD GPIOA->AFR[1] &= ~GPIO_AFRH_AFSEL13_Msk; GPIOA->AFR[1] |= (0U << GPIO_AFRH_AFSEL13_Pos); // 配置SWCLK引脚的复用功能为SWD GPIOA->AFR[1] &= ~GPIO_AFRH_AFSEL14_Msk; GPIOA->AFR[1] |= (0U << GPIO_AFRH_AFSEL14_Pos); // 使能SWD接口时钟 RCC->APB2ENR |= RCC_APB2ENR_DBGMCUEN; DBGMCU->CR |= DBGMCU_CR_DBG_SWEN; } ``` 使用以上代码,你可以将PA13和PA14引脚配置为SWDIO和SWCLK复用功能,并启用SWD接口。接下来,你可以使用调试器软件进行调试和编程。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值