STM32-MDK: Error: L6915E: Library reports error: __use_no_semihosting was requested,

为了让程序可以使用“printf”进行输出,从而使用串口程序。
在编译程序是报错
…\OBJ\test_program.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested, but a semihosting fputc was linked in…

解决方案:(取自正点原子)
在usart.c文件中增加下面这段儿程序
//加入以下代码,支持printf函数,而不需要选择use MicroLIB
#if 1
#pragma import(__use_no_semihosting)
//标准库需要的支持函数
struct __FILE
{
int handle;

};

FILE __stdout;
//定义_sys_exit()以避免使用半主机模式
_sys_exit(int x)
{
x = x;
}

//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);//循环发送,直到发送完毕
USART1->DR = (u8) ch;
return ch;
}
#endif

你可能感兴趣的:(程序编译,STM32,自学,stm32)