2501_93940366 2025-11-23 01:23 采纳率: 100%
浏览 8
已结题

有没有人遇到过这种情况:

在做实验的过程中,代码和硬件连接都没问题,但烧录后0.96的OLED一直处于黑屏状态,OLED也没有烧坏。

把整个工程文件夹发给舍友帮忙试,但舍友一烧录OLED就显示数据了。
而我在拿回来烧录代码进去,OLED花屏,二次烧录变成黑屏。

我挨个把STM32F103C8T6、OLED、ST-LINK全都换了一遍,用舍友的电脑烧录,OLED就是能正常显示数据,一换我的电脑烧录就不行。

舍友用的是STM32 ST-LINK Utility烧录,我试着改用这个也不行,压缩包是同一个,和舍友唯二不同的配置是电脑和ST-LINK(我的是红色的,他的是黑色的)

但是我用他的ST-LINK在我的电脑上烧录也不行……
我的电脑是联想Y7000,RTX4060/14核i7

img

img

img

  • 写回答

4条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-11-23 12:57
    关注

    让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。

    如果答案能帮助您,请采纳,非常感谢!
    .
    每日一句正能量,让它带给您好心情:把快乐装进口袋,随身携带,生活就会充满阳光。
    .

    根据你描述的问题现象和提供的截图信息,这是一个典型的STM32开发环境配置问题。让我帮你分析可能的原因和解决方案:

    问题分析

    从你的描述和截图来看,问题很可能出现在以下几个方面:

    1. ST-LINK驱动兼容性问题

    • 红色和黑色ST-LINK可能使用不同的固件版本
    • 你的电脑可能存在驱动冲突或版本不匹配

    2. 供电问题

    • 不同电脑的USB端口供电能力可能不同
    • ST-LINK的3.3V输出可能存在差异

    3. 烧录配置差异

    解决方案

    第一步:彻底清理ST-LINK驱动

    # 使用ST官方工具卸载所有ST-LINK相关驱动
    # 下载STSW-LINK009 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1 USB driver
    

    第二步:更新ST-LINK固件

    # 使用STM32 ST-LINK Utility中的ST-LINK Upgrade功能
    # 或者下载独立的ST-LINK固件升级工具
    

    第三步:检查烧录配置

    在STM32 ST-LINK Utility中确认以下设置:

    // 确保烧录配置一致
    - Connection: SWD
    - Reset Mode: Software Reset  
    - Programming Algorithm: 选择正确的Flash算法
    - Verify: Enabled
    - Reset after programming: Enabled
    

    第四步:修改工程配置

    如果使用STM32CubeIDE或Keil,检查:

    1. 时钟配置:确保系统时钟配置正确
    2. GPIO配置:确认OLED使用的I2C/SPI引脚配置
    3. 延迟初始化:在OLED初始化前添加适当延迟
    // 在main函数中添加初始化延迟
    HAL_Delay(100);  // 等待硬件稳定
    OLED_Init();     // 初始化OLED
    

    第五步:电源相关排查

    // 在代码中添加电源检测
    if (__HAL_PWR_GET_FLAG(PWR_FLAG_PVDO)) {
        // 电源异常处理
        Error_Handler();
    }
    

    第六步:尝试不同的烧录方式

    1. 使用STM32CubeProgrammer
    • 选择"Under Reset"连接模式
    • 降低SWD时钟频率
    1. 使用OpenOCD
    openocd -f interface/stlink.cfg -f target/stm32f1x.cfg
    

    特别建议

    考虑到你的电脑配置较高,可能存在以下兼容性问题:

    1. USB 3.0/3.1端口兼容性:尝试使用USB 2.0端口
    2. 电源管理设置:在设备管理器中禁用USB选择性暂停
    3. 杀毒软件干扰:临时关闭杀毒软件进行测试

    验证步骤

    按照以下顺序验证:

    1. 使用舍友的ST-LINK + 舍友的电脑 ✅ (已知正常)
    2. 使用你的ST-LINK + 舍友的电脑 ✅ (测试ST-LINK)
    3. 使用舍友的ST-LINK + 你的电脑 ❌ (问题复现)
    4. 按照上述方案修复后再次测试

    这个问题很可能是驱动或电源相关的兼容性问题,按照上述步骤应该能够解决。如果问题依旧,请提供更详细的错误日志信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月23日