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: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]