找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 488|回复: 3
收起左侧

在51单片机中怎么使用snprintf 与vsnprintf

[复制链接]
ID:1166552 发表于 2026-1-10 16:49 | 显示全部楼层 |阅读模式
各位大佬们,小弟现在遇到一个问题,在使用stc8h8k64u单片机时想要使用vsnprintf与snprintf,但是一直报警告找不到这个函数,有什么办法吗,我已经添加了头文件
回复

使用道具 举报

ID:584814 发表于 2026-1-12 08:41 | 显示全部楼层
以下是百度来的,平时不用这。
#include <stdio.h>
#include <stdarg.h>
void my_printf(const char* format, ...) {
    char buffer;
    va_list args;
    va_start(args, format);
    _vsnprintf(buffer, sizeof(buffer), format, args);
    va_end(args);
    // 通过串口发送 buffer 内容
    // 如::ml-search-more[UART_SendString]{text="C51 UART_SendString"}(buffer);
}
回复

使用道具 举报

ID:401564 发表于 2026-1-12 09:20 | 显示全部楼层
#include <stdio.h>//这个是头文件
下面是我自己正在用的
void send_text_hex(char *txt, unsigned int data_send)//发送文本+变量(HEX数据)
{
        char   k[10];                                                                                 /数组长度随意,不出错就可以
        char a;
        sprintf(k, "%.d", data_send);                                                //把数据分割成字符串,并存放在k数组中f

        if(data_send == 0)
        {
                send_out_com('0');                                                                //如果数据为0,就发送一个'0'
        }
        else
                {
                                for(a=0;(k[a]!='\0');a++)
                                {
                                        send_out_com(k[a]);                                        //这是串口发送函数
                                }
                }
}

回复

使用道具 举报

ID:592807 发表于 2026-1-12 16:18 | 显示全部楼层
你先确定你有这个<stdarg.h>库吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表