找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 116|回复: 2
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:1166552 发表于 2026-1-10 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬们,小弟现在遇到一个问题,在使用stc8h8k64u单片机时想要使用vsnprintf与snprintf,但是一直报警告找不到这个函数,有什么办法吗,我已经添加了头文件
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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]);                                        //这是串口发送函数
                                }
                }
}

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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