printf ( "Device Connect\n" );
//开始枚举操作
res = CH375BusReset(); /* 总线复位 */
if( res != USB_INT_SUCCESS ) printf("Bus Reset Erro\n");
delay_ms( 50 );
用官方提供的stm32枚举设备操作鼠标,一直都是bus reset erroe,请教是哪里出的问题?
测试数据通信,正确返回0x9a,是不是说明通信没有问题?
用的是CH375B
printf ( "Device Connect\n" );
//开始枚举操作
res = CH375BusReset(); /* 总线复位 */
if( res != USB_INT_SUCCESS ) printf("Bus Reset Erro\n");
delay_ms( 50 );
用官方提供的stm32枚举设备操作鼠标,一直都是bus reset erroe,请教是哪里出的问题?
测试数据通信,正确返回0x9a,是不是说明通信没有问题?
用的是CH375B
是不是模式设置后等待返回值时间不够?看一下模式设置后读到的值是否为51H。
f( CH375CheckConnect() == USBD_CONNECT ) /* 刚检测到一个设备接入,需要枚举 */
{
printf ( "Device Connect\n" );
//开始枚举操作
res = CH375BusReset(); /* 总线复位 */
if( res != USB_INT_SUCCESS ) printf("Bus Reset Erro\n");
delay_ms( 50 ); /* 等待设备稳定 */
初始化设置模式后返回值正确,检测接入设备后设置模式返回值是0xff
按照此结构组织代码:
set_usb_mode( 5 ); /* 设置USB主机模式, 如果设备端是CH37X, 那么5和6均可 */
printf("wait connect...\n");
for(;;)
{
while ( wait_interrupt()!=USB_INT_CONNECT ); /* 等待设备端连接上来 */
mDelayms(200);
s = Get_freq();
set_usb_mode( 7 ); /* 总线复位 */
mDelayms(30);
set_usb_mode( 6 );
if( s&0x10 ) Set_freq(); /* 切换使375B进入低速模式 */
mDelayms(100);
//开始枚举
}