找回密码
 立即注册
查看: 981|回复: 3

STC32G USB-HID 不使用官方的lib下如何输出printf

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:86
  • 最近打卡:2025-04-28 11:10:46

12

主题

44

回帖

558

积分

高级会员

积分
558
发表于 2023-6-2 16:31:58 | 显示全部楼层 |阅读模式
STC32G USB-HID 不使用官方的lib下如何输出printf


因为使用一些定制的usb hid 不能使用官方的usb-hid 库,现在想写一个重定向printf函数,有没有参考示例,另外也没有官网的usb-hid库的源码所以不能查看lib中的实现方式,uart 重定向是比较简单, 但不适用于usb hid输出
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-05 16:23:47

3

主题

51

回帖

487

积分

中级会员

积分
487
发表于 2023-6-3 14:25:01 | 显示全部楼层
跟串口定位一样,把putchar函数输出改做写入hid缓存就可以了
char putchar(char c)
{
//        UartSend( c );
        TxBuffer[printfTestPtr++] = c;
//        Busy_Computer =0;
        return c;
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-08-21 16:00:36

0

主题

4

回帖

66

积分

注册会员

积分
66
发表于 2023-8-1 22:31:14 | 显示全部楼层
int printf_hid (const char *fmt, ...)
{
    va_list va;
    int ret;

    va_start(va, fmt);
    ret = vsprintf(&UsbInBuffer[0], fmt, va) + 8;
    va_end(va);

    usb_IN();

    return ret;
}

void USB_SendData(BYTE *dat, int size)
{
    if (size > 64) size = 64;
    memcpy(&UsbInBuffer[0], dat, size);

    usb_IN();
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:86
  • 最近打卡:2025-04-28 11:10:46

12

主题

44

回帖

558

积分

高级会员

积分
558
发表于 2023-8-23 14:26:47 | 显示全部楼层
jjy*** 发表于 2023-8-1 22:31
int printf_hid (const char *fmt, ...)
{
    va_list va;

谢谢,有时间试试,
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 18:05 , Processed in 0.108825 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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