野生程序员
发布于 2024-07-12 / 85 阅读 / 0 评论 / 0 点赞

stm32重定向打印

重定向打印

#include <stdarg.h>  
#include "stm32f1xx_hal.h" // 根据你的STM32型号调整头文件  
  
void uart1_printf(const char *format, ...) {  
    char buffer[256];  
    va_list args;  
    va_start(args, format);  
    vsnprintf(buffer, sizeof(buffer), format, args);  
    va_end(args);  
    HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);  
}  
  
void uart2_printf(const char *format, ...) {  
    char buffer[256];  
    va_list args;  
    va_start(args, format);  
    vsnprintf(buffer, sizeof(buffer), format, args);  
    va_end(args);  
    HAL_UART_Transmit(&huart2, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);  
}  
  
// 确保在main()或某个初始化函数中正确配置了huart1和huart2

usart.c


#include "stdio.h"
#include <string.h>  
#include <stdarg.h>  

int fputc(int ch, FILE *f)
{
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
	return ch;
}
//就能使用
//printf( "1\r\n");


评论