#include "stdio.h" //使用printf函数需引用的头文件
///选择串口发送数据的类型
#define HAL_USART 1 ///<HAL阻塞串口发送数据
//#define HAL_USART_DMA 1 ///<HAL_DMA串口发送数据
/**
* @brief 定义printf函数结构体
*
*/
struct FILE {
int handle;
};
/**
* @brief 重定向printf函数到串口
*
*/
int fputc(int ch, FILE * f){
#ifdef HAL_USART
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);///<普通串口发送数据
#elif HAL_USART_DMA
HAL_UART_Transmit_DMA(&huart1,(uint8_t *)&ch,1);///<DMA串口发送数据
#endif
while(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_TC) == RESET){}///<等待发送完成
return ch;
}
/**
* @brief 重定向scanf函数到串口
*
*/
int fgetc(FILE * F) {
uint8_t ch = 0;
#ifdef HAL_USART
HAL_UART_Receive(&huart1,&ch, 1, 0xffff);///<普通串口接收数据
#endif
#ifdef HAL_USART_DMA
HAL_UART_Receive_DMA(&huart1,(uint8_t *)&ch,1);///<DMA串口发送数据
#endif
while(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_TC) == RESET){}///<等待发送完成
return ch;
}
printf(" Hello world! \r\n"); //调用串口输出函数测试内容
版权声明:本文为qq_26043945原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。