包含头文件
#include "stdio.h"
添加代码
#pragma import(__use_no_semihosting)
//标准库需要的支持函数
struct __FILE
{
int handle;
};
FILE __stdout;
/**
* @brief 定义_sys_exit()以避免使用半主机模式
*
* @param void
*
* @return void
*/
void _sys_exit(int x)
{
x = x;
}
寄存器版本
#define printf_uart USART1
int fputc(int ch, FILE *f)
{
while((printf_uart->ISR & 0X40) == 0); //循环发送,直到发送完毕
printf_uart->TDR = (uint8_t) ch;
return ch;
}
HAL库版本
#define printf_uart huart1
int fputc(int ch, FILE *f)
{
while(__HAL_UART_GET_FLAG(&printf_uart, UART_FLAG_TC) == RESET);
HAL_UART_Transmit(&printf_uart,(uint8_t *)&ch,0x01,100);
return ch;
}