官方示例CompositeKM点击键盘按键无法唤醒电脑

电脑进入睡眠状态后,无法通过点击按键唤醒

请问一下这个应该如何修改,能给个相关代码吗,非常感谢

您好。

使用的MCU是哪款?最新例程是否可以唤醒?是否与特定电脑关联?


下载的9月4号的例程,ch32v203c8t6,使用内置晶振,电脑是台式机,cpu 13700kf,主板铭瑄Z790M,内存金百达6400,键盘直接插电脑是可以唤醒的


你好,此处修改为这样即可

image.png


W3[(3V1I7HJXIQ_]JXFJZGH.png

这样改还是不行,没反应


icon_rar.gifV203USBD_KM_WFE.zip

你好,这是改好的,测试可以


您好,这个确实可以了。

但是我的设备物理拓扑结构是这样的【电脑】<->【 usb-device, usb-host】<->【键鼠设备】,请问这种方式可以通过键鼠唤醒吗?

经过多次尝试发现,是设置了wfi后,键盘敲击没反应,我理解应该是单片机完全睡眠了


中间的设备是MCU实现吗,正常是可以的,键鼠唤醒MCU,MCU再唤醒电脑,只不过我们的HOST例程里没有涉及睡眠的部分,这块要自己加


只要不改为WFI中断模式,电脑睡眠后单片机的HOST模块也可以接收到按键事件的,这种情况下发送哪个事件可以远程唤醒电脑


如果中间的MCU不睡眠的话,直接用这个函数就可以唤醒主机 Resume(RESUME_INTERNAL); 


可以了,非常感谢。

另外看了帖子https://www.wch.cn/bbs/thread-107710-1.html通过信号反转的方式也尝试了,但是不生效

void remoteWakeupOn(bool fullspeed)

{

    elog_d(TAG,"USBFSH_SetSelfSpeed speed:%d\r\n",fullspeed);

    if( fullspeed)

    {

        USBOTG_FS->BASE_CTRL &= ~USBFS_UC_LOW_SPEED;

        USBOTG_FS->UDEV_CTRL &= ~USBFS_UH_LOW_SPEED;

    }

    else

    {

        USBOTG_FS->BASE_CTRL |= USBFS_UC_LOW_SPEED;

        USBOTG_FS->UDEV_CTRL |= USBFS_UH_LOW_SPEED;

    }

}

调用的地方这样写的

remoteWakeupOn(0);

Delay_Ms(2);

remoteWakeupOn(1);

这个大概原因是什么


只有登录才能回复,可以选择微信账号登录