關(guān)于STM32的printf()函數(shù)重映射
printf()函數(shù)的重映射:
在配置的target選項(xiàng)中選擇usemicrolib,然后在main()函數(shù)之前添加函數(shù)重映射,如下:
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (u8) ch);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)== RESET);
return ch;
}
在main()函數(shù)中包含stdio.h頭文件,在其他自己創(chuàng)建的函數(shù)中若使用printf()函數(shù)也應(yīng)該包含改頭文件,這樣一來(lái),prinft()函數(shù)重映射的使用便不會(huì)有警告以及錯(cuò)誤。
若不是用微庫(kù),則應(yīng)該在重映射printf()之前添加一段代碼,如下:
#pragma import(__use_no_semihosting)
_sys_exit(int x)
{
x = x;
}
struct __FILE
{
int handle;
};
FILE __stdout;
完成后即可使用printf()重映射函數(shù)。