找回密码
 立即注册
查看: 35|回复: 1

USB库函数-从“Hello World”开始,USB_SendData()可以取代printf_usb()

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:470
  • 最近打卡:2025-07-18 09:01:40
已绑定手机

44

主题

2111

回帖

7339

积分

论坛元老

积分
7339
发表于 4 天前 | 显示全部楼层 |阅读模式
void USB_SendData(BYTE *dat, int size) 取代 printf_usb() 的3个程序

使用USB库函数“USB_SendData()” 简单实现USB输入/输出功能,
可以取代 printf_usb()

截图202507151728474935.jpg

Project-CDC(SendData).zip

31.42 KB, 下载次数: 2

USB-CDC-查询模式.zip

31.12 KB, 下载次数: 0

USB-CDC-中断模式.zip

31.15 KB, 下载次数: 2

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:132
  • 最近打卡:2025-07-19 08:04:15

758

主题

1万

回帖

1万

积分

管理员

积分
17933
发表于 4 天前 | 显示全部楼层
截图202507151733277142.jpg

  1. #include  "ai8051u.h"        //头文件不分大小写,但关键字分大小写
  2. #include  "ai_usb.h"        //USB库和USB虚拟设备的头文件
  3. u8 buf[] = {"Hello World !\r\n"};
  4. #define LEN     (sizeof(buf)-1)
  5. void  main(void)
  6. {
  7.         EAXFR = 1;        //允许访问扩展的特殊寄存器,XFR
  8.         WTST = 0;        //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
  9.         CKCON = 0;        //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
  10.         P0M0 = 0x00; P0M1 = 0x00;        //初始化P0口为准双向口模式
  11.         P1M0 = 0x00; P1M1 = 0x00;         //初始化P1口为准双向口模式
  12.         P2M0 = 0x00; P2M1 = 0x00;         //初始化P2口为准双向口模式
  13.         P3M0 = 0x00; P3M1 = 0x00;         //初始化P3口为准双向口模式
  14.         P4M0 = 0x00; P4M1 = 0x00;         //初始化P4口为准双向口模式
  15.         P5M0 = 0x00; P5M1 = 0x00;         //初始化P5口为准双向口模式
  16.         usb_init();
  17.         //初始化USB模块,并且会将【P3.0,P3.1】初始化为高阻输入,不影响USB【D-,D+】通讯
  18.         EA = 1;                //使能总中断
  19.         while (1)
  20.         {
  21.                 USB_SendData(buf,LEN);
  22. //                printf_usb("Hello World !\r\n");
  23.                 //  \r是回车,并跳到行首,\n是换行,就是换到下一行;\r\n不要交换次序
  24.         }
  25. }
复制代码
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-19 15:03 , Processed in 0.109229 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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