stm32調試時,有時不太適合打斷點的地方,還需要狀態,那printf就很符合我們的要求了。不多說,直接上修改方法:
首先:
添加printf的頭文件 :
#include “stdio.h”
其次:
改寫int fputc(int ch, FILE *f)函數
int fputc(int ch, FILE *f);
寄存器版
int fputc(int ch, FILE *f)
{
USART_SendData(USARTx, (uint8_t) ch);
while (USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET);
return ch;
}
hal版本
int fputc(int ch, FILE f)
{
HAL_UART_Transmit(&huart1,((unsigned char)&ch),1,2);
return ch;
}
最後:
在keil 平臺上改下設置:
Use MicroLIB ->Target -> Code Generation -> 選中Use MicroLIB
當然,前提是你初始化了USARTx
在IAR中一樣的:
只不過最後一個設置改一下:Projec t- >Options -> General Options -> Library Configuration中的Library 項由"Normal"改爲"Full"
最後直接使用printf函數就可以了。