1 //加入以下代码,支持printf函数,而不需要选择use MicroLIB 2 #if 1 3 #pragma import(__use_no_semihosting) 4 //标准库需要的支持函数 5 struct __FILE 6 { 7 int handle; 8 9 }; 10 11 FILE __stdout; 12 //定义_sys_exit()以避免使用半主机模式 13 _sys_exit(int x) 14 { 15 x = x; 16 } 17 //重定义fputc函数 18 int fputc(int ch, FILE *f)19 { 20 //return ITM_SendChar(ch);21 22 while((USART2->SR&0X40)==0);//循环发送,直到发送完毕 23 USART2->DR = (u8) ch; 24 return ch;25 }26 #endif
如上图:
保留这一部分时:
其中 可以更换任意的串口
printf输出用串口发送出去
当 下图圈圈中的部分编译
则 通过JTAG (6线) 打印到SEGGER软件上
但是当串口初始化函数运行了的时候 上面就失效了
原因是?