在使用CH374 作為HOST? 于HID設(shè)備進(jìn)行通信時,前面獲取描述符都是正常的,但是讀寫數(shù)據(jù)卻是異常的。
uint8_t write_buff[64]={
0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,?
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,?
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,?
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,?
0xFF ,0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
? HostSetBusFree();
? ? ? ? ? while(!Query374DeviceIn());
? delay_ms(250);
? HostSetBusReset( );?
? while(!Query374DeviceIn());
? delay_ms(250);
? if ( Query374DevFullSpeed( ) )
? {
?HostSetFullSpeed( );
?}
else
{
?HostSetLowSpeed( );
}
delay_ms(50);
s = GetDeviceDescr( buf );//獲取設(shè)備描述符
s = SetUsbAddress( 0x02 );//設(shè)置地址
s = GetConfigDescr( buf );//獲取配置描述符
? ? ? ?s = SetUsbConfig( ( (PUSB_CFG_DESCR)buf ) -> bConfigurationValue );//設(shè)置參數(shù)
? ? ? ?以上所有初始化返回值都是USB_INT_SUCCESS,沒有任何異常,并檢查獲取的描述符內(nèi)容均正確
//HID讀寫異常
Write374Byte( REG_USB_LENGTH, 64 );
Write374Block( RAM_HOST_TRAN, 64, write_buff );
s = WaitHostTransact374( 0x02, DEF_USB_PID_OUT, FALSE, 1000 );
s = WaitHostTransact374( 0x02, DEF_USB_PID_IN, FALSE, 1000 );
len = Read374Byte( REG_USB_LENGTH );
Read374Block( RAM_HOST_RECV, len, read_buff );
? ? ? ?返回的s為0x20? ,數(shù)據(jù)寫不進(jìn)去,也讀不出來
? ? ?下面是我用PC軟件助手取代CH374讀取數(shù)據(jù)均有數(shù)據(jù)返回
請教程序哪里有不合理或者不對的地方,非常感謝!