Link连接错误

1.fatal error LNK1169: one or more multiply defined symbols found

AK:

可在文件视图中观察,多出来不认识文件,删除即可

2.error LNK2001: unresolved external symbol "public: __thiscall CDddDlg::CDddDlg(class CWnd *)"

AK:

CDddDlg这个cpp有没有包含在工程中,如果在,检查该函数在该文件中是否存在
通过这样添加文件:工程->增加到工程->文件

3.Runtime Error
(STACK_OVERFLOW)

AK:
(1)堆栈溢出,递归层数过多;
(2)应在全局开比较大的数组
4.error LNK2001: unresolved external symbol _main
Debug/2.exe : fatal error LNK1120: 1 unresolved externals

<think>我们正在处理ST-LINK连接错误的问题。根据引用[1],我们知道ST-LINK有一个序列号,并且可以通过指定序列号来连接。另外,引用[3]提到了网络连接问题可能导致通信失败,虽然它是关于MySQL的,但我们可以借鉴其思路:检查网络连接和配置。引用[4]提到了连接错误的troubleshooting方法,但具体内容未给出。因此,我们主要参考引用[1]和引用[3]的思路。 常见的ST-LINK连接错误可能包括: 1. 硬件连接问题(USB线、接口松动等) 2. 驱动程序问题 3. ST-LINK固件版本过旧 4. 目标板供电问题 5. 软件配置问题(如选择了错误的ST-LINK,或者指定了错误的序列号) 步骤: 1. 检查硬件连接:确保USB线连接牢固,尝试更换USB线或USB端口。 2. 检查设备管理器:在Windows系统中,打开设备管理器,查看ST-LINK是否被正确识别(通常显示为“STMicroelectronics STLink Virtual COM Port”和“STMicroelectronics STLink USB device”)。如果有黄色感叹号,则需要重新安装驱动。 3. 更新ST-LINK驱动:可以从ST官网下载最新的ST-LINK驱动。 4. 更新ST-LINK固件:使用ST-LINK Utility软件可以更新固件(注意:更新固件有风险,需谨慎操作)。 5. 检查目标板供电:确保目标板有足够的电源供应,有时目标板供电不足会导致连接不稳定。 6. 检查软件配置:在开发环境(如Keil、IAR或STM32CubeIDE)中,检查是否选择了正确的ST-LINK,并且指定了正确的序列号(如果有多个ST-LINK)。引用[1]中提到可以通过`-i`参数指定ST-LINK的序列号。 如果上述步骤不能解决问题,可以尝试以下: 7. 重启电脑和开发板。 8. 尝试使用另一台电脑连接,以确定是否是电脑的问题。 9. 检查ST-LINK与目标板的连接线(SWD或JTAG)是否正常,特别是SWDIO和SWCLK两根线。 引用[2]提到了LPC-Link,这是一种类似的调试器,但这里我们主要关注ST-LINK。 根据引用[3]中解决MySQL连接问题的思路,我们可以联想到网络设置(虽然ST-LINK是USB设备,但如果是网络调试器则另当别论,但通常ST-LINK是USB直接连接的)。所以对于ST-LINK,我们不需要考虑网络设置,除非是远程调试。 因此,我们总结如下: 解决ST-LINK连接错误的步骤: 1. **检查物理连接**:重新插拔USB线,确保连接可靠。 2. **检查设备管理器**:确认设备被正确识别,无黄色感叹号。 3. **安装或更新驱动**:从ST官网下载并安装最新的ST-LINK驱动。 4. **更新固件**:使用ST-LINK Utility更新固件(注意:更新固件可能导致不兼容,需确认当前固件版本是否需要更新)。 5. **检查目标板供电**:确保目标板有电,如果目标板由ST-LINK供电,检查是否在软件中设置了供电(通常ST-LINK可以配置是否给目标板供电)。 6. **检查软件配置**:在IDE中检查调试配置,选择正确的ST-LINK,如果有多个,指定序列号(引用[1])。 7. **更换电脑或USB端口**:排除电脑USB端口或系统问题。 8. **检查SWD/JTAG连接线**:确保SWDIO和SWCLK(以及GND)连接正确且没有虚焊。 如果以上步骤仍无法解决,可能是ST-LINK硬件故障。 相关问题: 1. 如何更新ST-LINK的固件? 2. 如何在Keil MDK中指定ST-LINK的序列号? 3. ST-LINK驱动安装失败怎么办? 4. ST-LINK无法识别目标板的原因有哪些?</think>### ST-LINK 连接错误排查指南 以下是系统性的故障排查步骤,结合硬件连接、驱动配置和软件设置: #### 1. **基础硬件检查** - ✅ **重新插拔设备**:断开ST-LINK与电脑和目标板的连接,等待10秒后重新连接。 - ✅ **检查线缆**:更换USB线缆(尤其是移动后出现故障时)。 - ✅ **供电验证**: - 若目标板独立供电,确保电压在3.3V±10%范围内。 - 若由ST-LINK供电,检查`nRST`引脚是否正常(目标板电流需<100mA)[^1]。 #### 2. **驱动与系统配置** ```bash # Windows设备管理器关键检查项 [通用串行总线控制器] → [STMicroelectronics STLink Virtual COM Port] [通用串行总线设备] → [STMicroelectronics USB Device] ``` - 🔧 **驱动修复方案**: 1. 卸载现有驱动(右键→卸载设备) 2. 安装最新[ST-LINK驱动](https://www.st.com/en/development-tools/stsw-link009.html) 3. 禁用USB节能模式: - 设备管理器→USB根集线器→电源管理→取消"允许计算机关闭此设备" #### 3. **固件与软件配置** - ⚙️ **固件更新**: 1. 运行 **ST-LINK Utility** 2. 菜单栏 `ST-LINK` → `Firmware update` - 🔍 **IDE关键设置**: - **Keil/IAR**:`Debug`选项卡确认选择`ST-LINK Debugger` - **STM32CubeIDE**: ```c // 检查SWD接口配置 SYS→Debug = Serial Wire ``` - **多设备场景**:通过`-i <ST-LINK S/N>`指定序列号(设备背面标签)[^1] #### 4. **信号层诊断** | 测试点 | 预期值 | 测量工具 | |----------------|-------------|-----------------| | `SWDIO`对`GND` | 3.3V脉冲 | 示波器/逻辑分析仪 | | `SWCLK`对`GND` | 1-4MHz时钟 | 同上 | | `nRST`电平 | >2.0V (High)| 万用表 | - 🚫 **常见硬件故障**: - 目标板电容短路(重点检查`VDDA`引脚) - 信号线长度>20cm(需降低时钟频率) #### 5. **网络层排查(远程调试)** - 🌐 **防火墙规则**: ```powershell netsh advfirewall firewall add rule name="ST-LINK" dir=in action=allow program="C:\STLink\stlink_server.exe" enable=yes ``` - 📡 **端口检测**: ```bash telnet <服务器IP> 7184 # 默认通信端口 ``` ### 典型错误解决方案 - **"ST-LINK communication error"**: 1. 降低SWD时钟频率(IDE调试设置→`Clock`调至200kHz) 2. 短接目标板`BOOT0`至`VCC`进入下载模式 - **"No target connected"**: ```mermaid graph LR A[检查nRST电压] --> B{>2.0V?} B -->|否| C[检查复位电路] B -->|是| D[测量SWD信号] ``` > **注意**:若以上步骤无效,可能是ST-LINK硬件损坏(常见于静电击穿),建议更换调试器[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值