printf雖然是C語言的標準函數,但是是針對有stdin, stdout設備的系統的,在嵌入式平臺上是沒有標準的stdin, stdout的,需要映射到串口後某個輸出對象的,而嵌入式平臺各不相同,如果又沒有操作系統的支持,就只能靠自己實現了,因此STM32下的printf不在標準庫裏,而在定製的庫裏。而且一般在嵌入式平臺一般也不用printf,可以自己使用sprintf()函數先將數據格式化到緩衝裏,然後數據想輸出到哪裏就輸出到哪裏。
如果使用的是MDK,請在工程屬性的“Target“-》”Code Generation“中勾選”Use MicroLIB“
關於兩個關鍵函數的重定義: