STM32烧写程序:Keil5使用ST-link下载程序

首先需要连接ST-link到电路板:
STM32烧写程序:ST-link V2调试下载器实物和连接方式
然后安装ST-link驱动:
STM32程序烧写:ST-link驱动下载和安装


Keil5使用ST-link下载程序

编译一个无错误的工程
在这里插入图片描述
点击工具栏的魔法锤
在这里插入图片描述
点击Debug,选择ST-Link Debugger
在这里插入图片描述
然后点击Settings
在这里插入图片描述
ST-LINK/V2适配器,SW模式,看芯片是否被识别
在这里插入图片描述
然后点击Flash Download,勾选Reset and Run,然后点击Add
在这里插入图片描述
添加STM32F10x
在这里插入图片描述
都这只好了,点击确定
在这里插入图片描述
点击OK
在这里插入图片描述
然后点击下载
在这里插入图片描述


Keil5编译环境搭建流程----STM32和GD32

### 关于 KEILST-LinkSTM32 中 SWO 错误的解决方案 当使用 KEILST-LinkSTM32 进行调试时,如果遇到 SWO(Serial Wire Output)错误,通常是因为硬件连接、软件设置或驱动程序存在问题。以下是可能的原因分析以及对应的解决方法: #### 1. **检查硬件连接** 确保目标板上的 SWD 接口与 ST-Link 的连接正常,并且电源供应稳定。SWO 功能依赖于特定的引脚配置,因此需要确认以下几点: - 目标板上是否启用了 SWO 引脚。 - 是否正确连接了 GND、SWCLK、SWDIO 和 SWO 引脚[^4]。 #### 2. **验证工具链和驱动版本** 如果之前安装过多个版本的 KEIL 或其他开发环境,可能会导致驱动冲突。可以尝试以下操作来解决问题: - 卸载旧版 KEIL 并重新安装最新版本。 - 更新 ST-Link 驱动至最新版本,确保其兼容当前使用的固件版本[^2]。 #### 3. **调整 ITM 和 TPIU 设置** SWO 输出功能基于 ITM(Instrumentation Trace Macrocell)和 TPIU(Trace Port Interface Unit)。可以通过以下命令手动配置这些模块: ```bash telnet localhost 4444 tpiu config internal :3444 uart off 168000000 2000000 itm port 0 on ``` 上述命令的作用是启用 ITM 数据端口并将其映射到指定的日志文件中。需要注意的是,波特率参数应根据实际需求进行调整。 #### 4. **修改项目配置** 在 KEIL 工程中,需确保已开启 SWO 支持选项。具体步骤如下: - 打开工程属性对话框,在 Debug -> Settings 下选择合适的接口类型(如 SWD)。 - 勾选 “Enable Serial Wire Viewer” 复选框以激活 SWO 功能[^3]。 #### 5. **排查潜在干扰源** 某些情况下,外部噪声或其他设备可能导致通信异常。建议采取以下措施减少影响: - 尽量缩短连线长度,避免信号衰减。 - 使用屏蔽线缆提高抗干扰能力。 --- ### 示例代码:重定向 `printf` 到 SWO 为了方便观察运行状态,可将标准输出函数 `printf` 定向至 SWO 渠道。下面是实现该功能的一个简单例子: ```c #include "stm32f1xx_hal.h" void ITM_SendChar(char ch) { while (!(CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk)); while (ITM->PORT[0].u32 == 0); ITM->PORT[0].u8 = ch; } int __io_putchar(int ch) { if (ch == '\n') { ITM_SendChar('\r'); } ITM_SendChar(ch); return ch; } ``` 上述代码片段定义了一个自定义字符发送函数 `_io_putchar()` ,它会调用底层 API 向 ITM 发送数据流。 --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

根号五

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

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

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

打赏作者

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

抵扣说明:

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

余额充值