1. 程式人生 > >分別在IAR for STM32、IAR for STM8、MDK中重定向printf的方法

分別在IAR for STM32、IAR for STM8、MDK中重定向printf的方法

1、STM32在IAR中呼叫printf函式的一個方法

原文地址:http://blog.sina.com.cn/s/blog_668bcb8f01018ect.html
在串列埠都配置好的情況下,在工程的其中一個c檔案中加入如下程式碼:
注:直接在main.c檔案前面加入這段程式碼也行,只是這樣的程式碼習慣不太好,程式碼顯得太雜亂,個人不推薦。
本人習慣性的新建一個redefineprintf.c檔案,在該檔案中加入此段程式碼,注意不要忘了將該檔案新增到工程中。

#include <stdio.h>
#ifdef __GNUC__

  #define PUTCHAR_PROTOTYPE 
int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { USART_SendData(USART1, (u16) ch); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {} return ch; }

之後如若編譯出現identifier “FILE” is undefined,即將Options->GeneralOptions->Library Configuation中的Library選為full即可。

2、STM8在IAR中呼叫printf函式的一個方法

3、MDK(Keil)在IAR中呼叫printf函式的一個方法