文章目录
-
- 驱动
-
- 配置时钟和Debug模式
- 安装USBDriver
- [更新ST-LINK Firmware](#更新ST-LINK Firmware)
- 硬件
- 安装芯片包(Device)
- 软件测试
- CG
驱动
- 未安装驱动:使用ST-Link下载方式,在Keil5中用download直接下载报错:ST-Link usb communication error。

配置时钟和Debug模式


安装USBDriver
- 未安装USBDriver:

- 未安装USBDriver:

- 根据电脑系统版本,选择dpinst_amd64.exe 或者dpinst_x86.exe安装:




更新ST-LINK Firmware

- 在\Keil_v5\ARM\STLink中找到ST-LinkUpgrade.exe,

- 点击Devive Connect按钮。

- 点击YES(出问题重新启动仿真器)

- 升级完成

- 回到Keil过后就可以重新下载了。

硬件
-
SWD接口(Serial Wire Debug)是ARM推出的Cortex‑M专用精简调试接口,2线实现近JTAG功能,引脚更省、速度更高。
信号 功能 说明 SWCLK 串行时钟 对应JTAG的TCK,调试器驱动 SWDIO 串行数据IO 双向半双工,分时复用TMS/TDI/TDO功能 -
工作原理:采用"请求‑应答"包传输:调试器发8位请求头(含访问类型、读写、地址、校验),目标回3位ACK(OK/WAIT/FAULT),再传输32位数据;支持奇偶校验与热插拔容错。
-
SWD接口虽然核心功能引脚仅为SWCLK(串行时钟)和SWDIO(双向串行数据)两根,但实际使用中必须接地线(GND),这是因为GND能为SWCLK和SWDIO的单端信号提供稳定的电平参考基准,确保调试器与目标MCU之间准确识别逻辑电平,同时接地线可形成信号回流路径,抑制电磁干扰、减少信号串扰,提升高速调试场景下的通信稳定性。
-
启动模式配置:STM32的启动模式选为SWD下载模式(Blue Pill上移动到靠近USB接口部分)
-
仿真器硬件链接SWD接口:
-
如果使用的 像U盘一样的仿真器,直接链接对应引脚即可。如果使用以下的仿真器,可以参照下边的接口图:


安装芯片包(Device)

- 下载芯片对应的pack文件(https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/devices/ ),双击pack文件进行安装即可。
- 如果仍然 Error: Flash Download failed - "Cortex-M3" ,可以尝试添加"Programming Algorithm":

软件测试
cpp
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
}
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // ??PC13??
HAL_Delay(5000); // ??500ms(LED??)
/* USER CODE BEGIN 3 */
}