cubemx 串口重载与打印
1)cubemx生成工程,配置串口
2)在main.c中添加代码
/* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "stdio.h" /* USER CODE END Includes */ /* USER CODE BEGIN 3 */ printf(" the uart is ready! \r\n" ); } /* USER CODE END 3 */ /* USER CODE BEGIN 4 */ //重定向c库函数printf到串口USARTx,重定向后可使用printf函数 int fputc(int ch, FILE *f) { /* 发送一个字节数据到串口USARTx */ HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); return (ch); } //重定向c库函数scanf到串口USARTx,重写向后可使用scanf、getchar等函数 int fgetc(FILE *f) { int ch; /* 等待串口输入数据 */ while (__HAL_UART_GET_FLAG(&huart2, UART_FLAG_RXNE) == RESET); HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return (ch); } /* USER CODE END 4 */
这里使用的是 串口1,根据需要可以修改成相应的串口句柄。