STM32 的 printf() 函數串口重定向(HAL庫標準庫都適用)
阿新 • • 發佈:2018-08-23
核心 spa color turn scanf函數 main hal pan art
}
1.建立工程
2.核心:添加新文件usar_fputc.c (名字隨便自己命名),把文件添加到項目中去
#include "stdio.h"
#include "stm32f1xx_hal.h"
extern UART_HandleTypeDef huart1;
uint8_t ch;
uint8_t ch_r;
//重寫這個函數,重定向printf函數到串口
/*fputc*/
int fputc(int c, FILE * f)
{
ch=c;
HAL_UART_Transmit(&huart1,&ch,1,1000);//發送串口
return c;
}
//重定向scanf函數到串口 意思就是說接受串口發過來的數據
/*fgetc*/
int fgetc(FILE * F)
{
HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收
return ch_r;
}
3.修改main.c 文件
#include "stdio.h" /*添加頭文件 */
在main()函數裏添加測試代碼:printf("\n===函數Printf函數發送數據===\n"); //測試內容
4.打開串口助手測試最終效果如圖:
STM32 的 printf() 函數串口重定向(HAL庫標準庫都適用)