[应用方案] printf重定向到串口

[复制链接]
2827|26
benjaminka 发表于 2024-8-8 11:10 | 显示全部楼层
唐单片机使用的是不同的库或API,你可能需要查阅相关的文档来找到正确的函数名和初始化代码。
houjiakai 发表于 2024-8-8 12:46 | 显示全部楼层
提供了一个基本的框架              
kmzuaz 发表于 2024-8-8 14:39 | 显示全部楼层

// 假设你已经有一个串口初始化函数,这里只是一个示例
void UART_Init(void) {
    // 初始化串口的代码
    // ...
}

// 重定向fputc函数到串口
int fputc(int ch, FILE *f) {
    // 将字符ch发送到串口
    // 这里假设UART0已经被初始化,并且使用的是中断或轮询方式发送数据
    while (!(UART0->USR & 0x80)); // 等待发送缓冲区为空
    UART0->UBRD = ch; // 发送字符
    return ch;
}

int main(void) {
    // 初始化串口
    UART_Init();

    // 重定向标准输出到串口
    // 这通常在main函数的最开始处完成
    setvbuf(stdout, NULL, _IONBF, 0);

    // 现在你可以使用printf函数了
    printf("Hello, Nuvoton!\r\n");

    while (1) {
        // 主循环
    }
}
wengh2016 发表于 2024-8-8 16:16 | 显示全部楼层
重写fputc或fputchar函数,这两个函数是printf在输出字符时的底层调用。
beacherblack 发表于 2024-8-8 21:11 | 显示全部楼层
将printf函数重定向到串口输出
fengm 发表于 2024-8-9 00:20 | 显示全部楼层
需要实现一个自定义的fputc函数,并将其指向stdout的putc函数指针。fputc是stdio.h中用于输出单个字符的函数。
班杰明 发表于 2024-8-12 23:30 来自手机 | 显示全部楼层
albertaabbot 发表于 2024-8-6 16:47
// 重定向fputc函数到串口
int fputc(int ch, FILE *stream) {
    // 发送字符到串口

还可以这么写吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部