江北一阳指 发表于 昨天 10:10

USB通信障碍 | 打开串口后,效果看到

照抄 “2.10.1 printf(),printf usb()实验程序代码” 的代码,编译能通过,但链接时出问题,估计是头文件引用出了问题,请大神们指点一下。


源码如下:

#include "stc32g.h"   //头文件不分大小写,但关键字分大小写
#include "ai_usb.h"   //USB库和USB虚拟设备的头文件,需要在项目文件中添加对应的USB库

void main(void)
{
    EAXFR=1;            //允许访问扩展的特殊寄存器,XFR
    WTST =0;            //设置取程序代码等待时间,赋值为0表示不等待,程序以最快速度运行
    CKCON=0;            //设置访问片内的xdata 速度,赋值为0表示用最快速度访问,不增加额外的等待时间

    usb_init();         //初始化 USB 模块,并且会将【P3.0,P3.1】初始化为高阻输入,不影响 USB【D-,D+】通讯
    EA = 1;             //使能总中断

    while (1)
    {
      printf_usb("Hello World !\r\n");
      //直接打印输出“Hello World!”到主机相应软件的USB【CDC/HID-串口助手)
      //是回车,跳到行首,是换行,就是换到下一行;n不要交换次序
    }
}


错误提示:

Rebuild target 'Target 1'
compiling main.c...
linking...
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:printf_usb
    MODULE:.\Objects\main.obj (main)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:?printf_usb?BYTE
    MODULE:.\Objects\main.obj (main)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:usb_init
    MODULE:.\Objects\main.obj (main)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:usb_init
    MODULE:.\Objects\main.obj (main)
    ADDRESS: FF0301H
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:printf_usb
    MODULE:.\Objects\main.obj (main)
    ADDRESS: FF030EH
Program Size: data=8.0 edata+hdata=296 xdata=0 const=22 code=824
Target not created.
Build Time Elapsed:00:00:00

江北一阳指 发表于 昨天 10:36

国芯人工智能 发表于 2025-10-15 10:12
根据你提供的代码和错误提示信息:



刚才添加了 stc_usb_cdc__32g.lib 文件到工程,就能正确地编译链接了{:ciya:}

但是遗憾的是看不到通讯效果。

江北一阳指 发表于 昨天 10:44

打开串口后,效果也看到了,非常的奈斯!

DebugLab 发表于 昨天 10:46

AiCube的CDC发送字符串例程供参考:



神农鼎 发表于 昨天 11:09

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接

https://v.stcai.com/sv/1c5eec2-197fcd9b766/1c5eec2-197fcd9b766.mp4
上面是 小李 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

https://v.stcai.com/sv/1fce8086-197cf2b9dd4/1fce8086-197cf2b9dd4.mp4
上面是 小赵 演示:Ai8051U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

https://v.stcai.com/sv/e49742d-1978afcb431/e49742d-1978afcb431.mp4
上面是 小李 演示:STC8H8K64U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

https://v.stcai.com/sv/61d1aa5-1978c2a6adb/61d1aa5-1978c2a6adb.mp4
上面是 小赵 演示:STC8H8K64U, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

https://v.stcai.com/sv/44b59184-197d39b65f2/44b59184-197d39b65f2.mp4
上面是 小李 演示:STC32G12K128, printf_usb("Hello World !\r\n")及usb不停电下载@AiCube之图形化程序自动生成

神农鼎 发表于 昨天 11:11


江北一阳指 发表于 5 小时前

神农鼎 发表于 2025-10-15 11:11


谢谢,己经解决问题了{:ciya:}
页: [1]
查看完整版本: USB通信障碍 | 打开串口后,效果看到