一. SWD方法调试
SWD方法需要:1. SWD接口 2.ST-LINK V2连接器
首先将STLINK驱动装好
按照如下方式连接STLINK

SWD接线




当我们调试程序时:

就可以下载程序啦!
二. 新建工程(寄存器版)



然后,我们打开工程目录,新建下图中的最后三个文件.
第一个是一个启动文件,到处都能找到
第二个第三个暂时是空文件

然后添加这些文件到工程中

如何选择启动文件, 我们可以根据下面的原则

在main文件中,我们写一个main函数 这里注意,我们要先写一个空的SystemInit函数来骗过编译器不报错

int main (void ){}void SystemInit(void){
//写这个函数是为了让程序启动时不报错,因为启动文件中会调用这个函数}注意 这里有个逼死强迫症的编译器检索规则: 最后要留一个回车行


HEX文件会生成在:
![]()
同时我们注意到还有 axf 文件, 这是调试器用的执行文件

当编译完成, 我们点下这个按钮时,

会出现:

三. 寄存器版点亮一个LED灯
这里我们要注意几点:
我们的头文件是暂时用一个空文件代替的, 要把它替换成标准的头文件'stm32f10x.h'
在STM32中的外设很多,为了降低功耗,每个外设都应对应一个时钟。芯片上电时,都是关闭的。它们都在RCC外设中统一管理。应该在对应寄存器中开启。
先看需要用到的寄存器:
开启GPIOB的时钟

将GPIO设为推挽10M输出

控制引脚电平

程序:

关键字:STM32 SWD调试 新建工程
引用地址:
STM32一文通(1) -SWD调试 新建工程
推荐阅读最新更新时间:2026-03-25 19:44
STM32只开启SWD模式调试程序
由于IO口不足,需要将JTAG复用成IO口使用,保留SWD功能调试程序。设置如下: GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
[单片机]
SWD调试在STM32中REMAP调试的深入探究
首先说一下问题的现象,如果有这种现象的同学可以看看博主的这篇博文程序download一次后,第二次download就提示no target connect,除非长按reset键才能继续下载程序 首先上一组stm32的TIM2的端口使用组合有下面四种: 1.当不重映射时,默认TIM2四个的IO口是PA0、PA1、PA2、PA3 开启重映射__HAL_AFIO_REMAP_TIM2_ENABLE() 2.要使用PA15、PB3、PA2、PA3的端口组合,要调用下面的语句进行部分重映射: __HAL_AFIO_REMAP_TIM2_PARTIAL_1() 3.要使用PA0、PA1、PB10、PB11的端口组合,要调用下面的
[单片机]
STM32小问题-复用调试接口JTAG/SWD为普通GPIO
这几天做毕业设计,按键模块用到了PA14和PA15这两个IO口(由于IO是引出到拓展板上,所以刚开始并不知道PA14和PA15是被调试接口占用了)。设置好相应的寄存器后发现只有PA15正常按下能被拉低,而PA14用万用表检测始终处于低电平状态。刚开始我以为这个管脚坏了,就想着设置成输出高电平试试,结果可想而知,查看手册后发现在在复位后JTAG接口的PA14被设置为下拉了,所以按键读回来的永远是低电平。 后来发现核心板上PA15引脚连接到了JTAG接口就想能不能通过复用把这几个口解放出来,毕竟在正常应用中调试接口是不工作的,还不如利用起来(其实是我懒得再改板子PCB了),后来查看手册发现真的可以复用起来。 手册描述如下 手册
[单片机]
STM32新建汇编工程2
上一篇文章里写了新建工程的过程中,使用了keil提供的文件,也可以不使用,自己手动拷贝,这样工程会更简单一些,只需要拷贝启动文件一个即可,如下界面里不做选择 新建工程的时候不选软件部件 然后直接新建工程,新建完工程后,再去之前的工程中,只将startup_stm32f10x_hd.s文件拷贝过来,放置到新建的工程目录下,然后在界面中加入已经存在的文件,然后新建一个main.s文件,将上篇文章中的代码拷贝过来,如下图 由于没有系统时钟配置部分的c代码,需要修改启动代码中调用了系统时钟初始化的部分,注释掉即可,如下图 注释掉启动文件中的调用系统时钟初始化的部分 然后编译,启动调试,可以看到依然会停到main.s中的B
[单片机]
STM32实战二 新建工程
这一章新建一个工程,主要目的是练习新建C++工程,生成比较干净的代码,后来发现没在太大的意义,直接在原示例中删除文件,然后新建cpp文件即可,也可以把原有main.c的属性变成c++,方法是main.c/右键/Options for file 'main.c' /Properties标签/File Type:/改为C++ Source file,这样更方便。不过下面还是记录一下新建工程的过程,对熟悉环境和配制有一定的帮助。 复制原有流水灯程序到新的文件夹下,打开Keil4,点击新建工程 在对话框中找到下面的文件夹,并新建一个文件夹STM32-AGV,进入STM32-AGV文件夹。 键入工程名ST
[单片机]
STM32,KEIL,MDK新建一个工程
目前感觉这样的文件结构安排最为合理。首先在选定文件夹下建立如下文件: 然后根据芯片,将相关文件放入对应文件夹中,现在以STM32F103RCT6为例。将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x目录下的stm32f10x.h,system_stm32f10x.h,system_stm32f10x.copy到core文件下,STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下的stm32f10x_conf.h复制到core下,其下的stm32f10x
[单片机]
看得见的新建STM32工程步骤
1. 新建文件夹 DOC文件夹: 可以存放readme.txt等项目文档 Library文件夹: 可以存放ST库源码,直接复制ST库的源代码到Library文件夹,另外startup只需复制和 芯片 对应的.s文件即可,一般存放在 -ST库3.5.0源码STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3Device SupportSTSTM32F10xstartu parm Listing文件夹: 可以存放Keil生成的List文件,需要在Keil中设置,List的存放路径。 Output文件夹: 可以存放生成
[单片机]
CKS32F103C8T6最小系统板调试记录——SWD下载
cks32f103是国产芯片,由中科芯研发,比起ST公司F103多了一个刹车功能 它有keil的器件安装包,支持keil的开发。 下载方式是:SWD方式 连接图 STLINK 烧写器引脚定义. 备注: 检查TVCC引脚是否有电压,如果没有电压就就外部引入供电线(如usb供电) 或者将ST-link v2 的19脚接回系统板的V3.3引脚 一定要接TVCC!
[单片机]