STM32開發 printf和scanf函數的重定向——修改HAL標准庫用printf函數發送數據直接輸出


首先在main.c文件中添加標准輸入輸出庫

#include <stdio.h>

然后在stm32cubemx生成的文件中,找到usart.c文件,在后面添加如下代碼

#include "stdio.h"
#include "stm32f1xx_hal.h"

//這個變量是其他.c文件定義的
extern UART_HandleTypeDef huart1;
uint8_t ch;
uint8_t ch_r;
//重寫這個函數,重定向printf函數到串口,意思就是說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;
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM