首先需要我们引用头文件,注意要放在private includes下面,如图所示:
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <string.h>
#include <stdio.h>
/* USER CODE END Includes */
接着我们要在USER CORE BEGIN4/USER END BEGIN4之间插入以下代码:
/* USER CODE BEGIN 4 */
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#define GETCHAR_PROTOTYPE int __io_getchar(FILE *f)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#define GETCHAR_PROTOTYPE int fgetc(FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
GETCHAR_PROTOTYPE
{
uint8_t ch = 0;
HAL_UART_Receive(&huart3,(uint8_t *)&ch, 1, 0xFFFF);
if (ch == '\r')
{
__io_putchar('\r');
ch = '\n';
}
return __io_putchar(ch);
}
/* USER CODE END 4 */
另外,补充一点,如果想要发送浮点数据,还需进行以下操作
首先打开project ----properties----C/C++ Build--Settings----Tool Settings----MCUSetings,
在最底下找到。
Use float with printf from newlib-nano(-u _printf_float)
Use float with printf from newlib-nano(-u_scanf_float)
并勾选.