2401_83412900 2024-04-06 14:54 采纳率: 0%
浏览 438

keil5debug无法进行调试

在用stlink时,想用调试,结果点start debug session 后直接跳转到了LDR 汇编这里,并且左上角的单步调试等按钮都是灰的,可不可以帮我看看是我代码问题还是硬件有问题,还是哪里配置错了。先提前谢谢各位了。
用的代码是cubemx生成的
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);
HAL_Delay(200);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
HAL_Delay(200)
实现闪烁。
当我烧录进去后,在想调试,就直接跳到了这里(位于startup_stm32f103x6.s)
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);
HAL_Delay(200);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
HAL_Delay(200);

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2024-04-06 14:54
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    看起来问题出在你的代码中,因为调试器无法在你的代码中停下来进行单步调试,而是跳转到了汇编代码中。

    以下是我能想到的解决方案:

    1. 检查调试器的配置是否正确。如果您使用的是Keil IDE进行调试,则需要正确配置调试选项。请确保已正确指定了要使用的调试器和目标设备,并启用了调试模式。

    2. 确认将正确的调试信息编译到了代码中。尝试使用带有调试信息的编译器选项重新编译代码,并确保已正确地指定了调试选项。

    3. 修改代码,避免使用延时函数。在使用延时函数时,可能会导致调试器出现问题。尝试使用其他方法来实现等待时间,如使用定时器。

    4. 重新烧写代码,确保已正确地烧写了代码。如果可能,尝试使用另一个编程器重新烧写代码,并在调试器中启动调试会话。

    修改后的代码:

    while(1) {
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_14);
        HAL_Delay(200);
    }
    

    这是一个基本的闪烁LED的代码,使用了HAL库中的GPIO翻转功能,同时使用了HAL库中的延时函数。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月6日