分別在IAR for STM32、IAR for STM8、MDK中重定向printf的方法
阿新 • • 發佈:2019-02-13
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即可。