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;
}