Keil5无法进入debug(卡死在启动文件)

当Keil5在调试STM32项目时,如果程序卡在启动文件且printf未正确重定向,可能导致debug无法运行。文章指出,即使包含stdio.h,未使用MicroLIB和适当配置,printf可能无法工作。解决方法是实现fputc函数以对printf进行串口重定向,确保USART1的传输完成标志设置正确。
摘要由CSDN通过智能技术生成

Keil5无法进入debug(卡死在启动文件)

出现的情况

运行一直卡死在启动文件,例如startup_stm32f103xe.s,而主程序的箭头也只有一个,两个箭头的运行行在启动文件,debug一直无法运行。

解决办法

你在程序中使用了printf函数,虽然你引用了stdio.h 头文件,printf没有报错,但是没有重定向,你看到了CSDN上有人写文章说只需要勾选微库MicroLIB,再加上stdio.h,就可以重定向,最后导致了这样一个问题。办法很简单,对printf进行重定向。下面的重定向自取。

#include “main.h”
#include “stdio.h”
#include “usart.h” //必须使用串口

int fputc(int ch, FILE * f)
{

while((USART1->SR & UART_FLAG_TC) == 0);


USART1->DR = (uint8_t)ch;

return ch;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值