打印
[应用方案]

SC92F732x系列printf函数构造

[复制链接]
楼主: robertesth
手机看帖
扫描二维码
随时随地手机跟帖
21
yorkbarney| | 2023-12-8 21:57 | 只看该作者 回帖奖励 |倒序浏览
printf函数的原型通常如下:

void printf(const char *format, ...);

使用特权

评论回复
22
bestwell| | 2023-12-9 09:56 | 只看该作者
在 printf 函数中,根据格式化字符串 fmt 中的格式说明符,从可变参数列表中获取相应的参数,并通过 uart 将其发送到串口。

使用特权

评论回复
23
jtracy3| | 2023-12-9 10:10 | 只看该作者
在发送数据时,可能需要发送字符串,发送一个变量的数值

使用特权

评论回复
24
louliana| | 2023-12-9 10:41 | 只看该作者
在单片机中,printf函数的参数传递通常是通过寄存器传递的。

使用特权

评论回复
25
sesefadou| | 2023-12-9 14:37 | 只看该作者
如果在编译器不支持printf函数的情况下,还可以自己实现printf函数。

使用特权

评论回复
26
pixhw| | 2023-12-9 14:53 | 只看该作者
printf函数是一个标准库函数

使用特权

评论回复
27
earlmax| | 2023-12-9 15:05 | 只看该作者
printf函数构造是一个复杂的过程

使用特权

评论回复
28
wangdezhi| | 2023-12-9 15:24 | 只看该作者
void uart_putc(char c);

int printf(char *fmt, ...)
{
    va_list args;
    int i;
    char *s;

    va_start(args, fmt);

    for (i = 0; fmt[i]; i++)
    {
        if (fmt[i] == '%')
        {
            switch (fmt[i + 1])
            {
                case 'c':
                    c = va_arg(args, int);
                    uart_putc(c);
                    break;
                case 's':
                    s = va_arg(args, char *);
                    while (*s)
                    {
                        uart_putc(*s);
                        s++;
                    }
                    break;
                case 'd':
                    i = va_arg(args, int);
                    if (i < 0)
                    {
                        uart_putc('-');
                        i = -i;
                    }
                    printf("%d", i);
                    break;
                // 其他格式化选项
            }
            i++;
        }
        else
        {
            uart_putc(fmt[i]);
        }
    }

    va_end(args);
}

使用特权

评论回复
29
bartonalfred| | 2023-12-9 15:32 | 只看该作者
在单片机中,由于没有操作系统和标准输出设备, 需要自己实现 printf 函数。

使用特权

评论回复
30
elsaflower| | 2023-12-9 15:47 | 只看该作者
单片机中的printf函数通常将输出位置重定向至串口来进行输出。

使用特权

评论回复
31
pentruman| | 2023-12-9 15:55 | 只看该作者
主要通过实现串口输出函数来完成。

使用特权

评论回复
32
averyleigh| | 2023-12-9 16:04 | 只看该作者
定义了一个putchar函数,用于发送一个字符到串口。

使用特权

评论回复
33
uytyu| | 2023-12-9 20:23 | 只看该作者
使用这些封装好的函数进行开发              

使用特权

评论回复
34
hilahope| | 2023-12-9 20:44 | 只看该作者
在单片机中,可变参数列表通常使用va_list结构体表示。va_start()函数可以用于设置可变参数列表的开始位置,va_end()函数可以用于设置可变参数列表的结束位置,va_arg()函数可以用于获取可变参数列表中的变量信息。

使用特权

评论回复
35
AIsignel| | 2024-1-8 09:42 | 只看该作者
在微控制器中,没有内置的printf函数。

使用特权

评论回复
36
天天向善| | 2024-1-8 16:05 | 只看该作者
微控制器的printf函数构造类似于Keil编译器,但需要用C语言编写。

使用特权

评论回复
37
鹿鼎计| | 2024-1-9 11:55 | 只看该作者
赛远sc92f732x系列单片机打印功能的构建

使用特权

评论回复
38
V853| | 2024-2-1 22:08 | 只看该作者
界说了一个名为printf的函数,它担当一个字符串对象。

使用特权

评论回复
39
LinkMe| | 2024-2-2 19:22 | 只看该作者
实现串行通信需要特殊的寄存器,如ti和sbuf。

使用特权

评论回复
40
digit0| | 2024-2-4 10:29 | 只看该作者
The printf function achieves output through serial communication。

使用特权

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

本版积分规则