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

STC的usb设备怎么向主机回数据

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 126 天

    [LV.7]常住居民III

    11

    主题

    101

    回帖

    416

    积分

    中级会员

    积分
    416
    发表于 2024-4-16 12:12:11 来自手机 | 显示全部楼层 |阅读模式
    就像uart一样,把数据放SBUF里,等完成标志就行了。usb设备回数据怎么回
    回复 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 19:09
  • 签到天数: 164 天

    [LV.7]常住居民III

    150

    主题

    213

    回帖

    1774

    积分

    金牌会员

    积分
    1774
    发表于 2024-4-16 13:31:05 | 显示全部楼层
    USB从设备是无法给主设备主动发送数据的
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:59
  • 签到天数: 143 天

    [LV.7]常住居民III

    27

    主题

    1343

    回帖

    4187

    积分

    论坛元老

    积分
    4187
    发表于 2024-4-16 13:32:34 | 显示全部楼层
    USB发送没这么简单,不过通过开源例子可以逐步反推发送过程。

    像“HID(Human Interface Device)协议范例”,在"usb_out_ep1"函数里面使用"usb_bulk_intr_in"进行发送:
    1. void usb_out_ep1()
    2. {
    3.     BYTE csr;
    4.     usb_write_reg(INDEX, 1);
    5.     csr = usb_read_reg(OUTCSR1);
    6.     if (csr & OUTSTSTL)
    7.     {
    8.         usb_write_reg(OUTCSR1, OUTCLRDT);
    9.     }
    10.     if (csr & OUTOPRDY)
    11.     {
    12.         usb_bulk_intr_in(UsbBuffer, usb_bulk_intr_out(UsbBuffer, 1), 1);    //功能测试,原路返回
    13.     }
    14. }
    复制代码
    "usb_bulk_intr_in"函数调用"usb_write_fifo":
    1. void usb_bulk_intr_in(BYTE *pData, BYTE bSize, BYTE ep)
    2. {
    3.     usb_write_fifo((BYTE)(FIFO0 + ep), pData, bSize);
    4.     usb_write_reg(INCSR1, INIPRDY);
    5. }
    复制代码
    "usb_write_fifo"函数调用"usb_write_reg":
    1. void usb_write_fifo(BYTE fifo, BYTE *pdat, BYTE cnt)
    2. {
    3.     while (cnt--)
    4.     {
    5.         usb_write_reg(fifo, *pdat++);
    6.     }
    7. }
    复制代码
    "usb_write_reg"函数原型如下:
    1. void usb_write_reg(BYTE addr, BYTE dat)
    2. {
    3.         while (USBADR & 0x80);
    4.         USBADR = addr & 0x7f;
    5.         USBDAT = dat;
    6. }
    复制代码
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 126 天

    [LV.7]常住居民III

    11

    主题

    101

    回帖

    416

    积分

    中级会员

    积分
    416
     楼主| 发表于 2024-4-16 16:52:46 来自手机 | 显示全部楼层
    QQ624353765 发表于 2024-4-16 13:31
    USB从设备是无法给主设备主动发送数据的

    我说的是被动发送数据
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-18 04:27 , Processed in 0.058992 second(s), 40 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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