这次实现 CH567 USB0 的 USB Host 功能。基于 \EXAM\USB1_HOST 的代码进行修改。其中已经实现了 USB0 HOST HID 的枚举,我们只需要添加针对 ENDPOINT 的读取即可。
在Main中添加如下代码:
s=WaitU0HTransactTimes(1,USB_PID_IN,ctrltog,6000);
if( s == USB_INT_SUCCESS ) {
ctrltog = ctrltog ? 0 : 1;
printf("in: ");
for(i=0; i<R16_USB0_RX_LEN; i++){
printf("%02x ", UHBuffer1[i]);}
printf("\n");
}
mDelaymS(1);
其中的 mDelayms() 数值应该根据描述符中的数值进行填写,这里我偷懒了直接使用 1ms。这对于功能没有 影响,USB KB 如果没有数据会直接 NAK 这次的请求。
完整代码: