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
如上圖:函數
保留這一部分時:spa
其中 能夠更換任意的串口3d
printf輸出用串口發送出去code
當 下圖圈圈中的部分編譯blog
則 經過JTAG (6線) 打印到SEGGER軟件上it
可是當串口初始化函數運行了的時候 上面就失效了編譯
緣由是?class