发新帖我要提问
12
返回列表
打印
[应用方案]

printf重定向到串口

[复制链接]
楼主: maudlu
手机看帖
扫描二维码
随时随地手机跟帖
21
benjaminka| | 2024-8-8 11:10 | 只看该作者 回帖奖励 |倒序浏览
唐单片机使用的是不同的库或API,你可能需要查阅相关的文档来找到正确的函数名和初始化代码。

使用特权

评论回复
22
houjiakai| | 2024-8-8 12:46 | 只看该作者
提供了一个基本的框架              

使用特权

评论回复
23
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) {
        // 主循环
    }
}

使用特权

评论回复
24
wengh2016| | 2024-8-8 16:16 | 只看该作者
重写fputc或fputchar函数,这两个函数是printf在输出字符时的底层调用。

使用特权

评论回复
25
beacherblack| | 2024-8-8 21:11 | 只看该作者
将printf函数重定向到串口输出

使用特权

评论回复
26
fengm| | 2024-8-9 00:20 | 只看该作者
需要实现一个自定义的fputc函数,并将其指向stdout的putc函数指针。fputc是stdio.h中用于输出单个字符的函数。

使用特权

评论回复
27
班杰明| | 2024-8-12 23:30 | 只看该作者
albertaabbot 发表于 2024-8-6 16:47
// 重定向fputc函数到串口
int fputc(int ch, FILE *stream) {
    // 发送字符到串口

还可以这么写吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则