printf重定向大全
2026/6/12 0:16:01 网站建设 项目流程

使用任意huart重写

int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xffff); return ch; } /** * 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx * 输入参数: 无 * 返 回 值: 无 * 说 明:无 */ int fgetc(FILE *f) { uint8_t ch = 0; HAL_UART_Receive(&huart2, &ch, 1, 0xffff); return ch; }

需要打开micoLib

#include <stdio.h> #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int _io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__*/ /****************************************************************** *@brief Retargets the C library printf function to the USART. *@param None *@retval None ******************************************************************/ PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart3, (uint8_t *)&ch,1,0xFFFF); return ch; }

如果不使用MicoLib则需要关闭半主机模式,详细见Keil MDK

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询