国学芯用 发表于 2023-1-31 08:53:44

STC8H的USB通讯可以指定端点接收和发送数据吗?


网友问:
使用STC8H8K64U-45MHz-TSSOP20中USB通讯,官方例程均只配置端点1进行数据传送。

https://cache.amobbs.com/new2012/forum/202301/30/042311r3e8yn9xkzanbdkp.jpg
有几个问题想请教各位高手:
1、上位机向下位机发送数据,如何指定某个端点进行通讯?
2、下位机向上位机发送数据,配置其他端点如端点2进行通讯,为什么无法实现?
#define EN_EP2OUT


usb_write_fifo(2, pdat, 64);//

例程使用STC8H8K64U-45MHz-LQFP64-DIP64-DEMO-CODE\19-HID(Human Interface Device)协议范例

zhp 发表于 2023-1-31 12:46:02

本帖最后由 zhp 于 2023-1-31 12:47 编辑

Q1、上位机向下位机发送数据,如何指定某个端点进行通讯?
A1:上位机向下位机发送数据,具体选择哪个端点,一般由驱动程序决定
      比如:HID的设备描述符中定义了EP1为IN端点,EP2为OUT端点,
               上位机执行ReadFile时,就会自动从EP1管道读取数据
               执行WriteFile时会自动将数据写如到EP2管道
               执行SetFeature或者GetFeature则强制从控制端点EP0读写数据
               上面的操作基本都是HID的驱动程序HIDUSB.SYS自动处理

Q2、下位机向上位机发送数据,配置其他端点如端点2进行通讯,为什么无法实现?
A2:下位机向上位机发送数据,除了需要配置端点2外,还需要修改设备描述符
      修改设备描述符的目的是告诉上位机,我接下来要从哪个端点发数据
      在代码“usb_desc.c”中在如下位置修改
      
页: [1]
查看完整版本: STC8H的USB通讯可以指定端点接收和发送数据吗?