[技术问答] 请问:NUC121芯片,USB如何远程唤醒电脑?

[复制链接]
239|7
 楼主 | 2019-8-10 22:19 | 显示全部楼层 |阅读模式
跪求大神帮助,最近一直在做USB键盘项目,使用的NUC121芯片的USB通信,碰到一个问题,配置USB寄存器无法远程唤醒电脑
问题描述:我在程序中写的逻辑是在USB挂起状态的下,如果有按键按下,将执行远程唤醒命令,但实际测试usb键盘时无法唤醒,我已经将NUC121芯片中的USB 总线状态寄存器 (USBD_ATTR)的RWAKEUP进行置位,依然无法唤醒电脑,我用鼠标测试是可以的(鼠标上用的不是NUC121芯片)
如果有相关例程,希望可以贴出来分享下,不胜感激!

相关代码如下:

                if((*((uint32_t *)USBD_ATTR)&USBD_STATE_SUSPEND)==USBD_STATE_SUSPEND)
                {
                                    /* Enable USB and enable PHY */
            USBD_ENABLE_USB();

            /*Enable HIRC tirm*/
            SYS->IRCTCTL = DEFAULT_HIRC_TRIM_SETTING;
                        CLK_SysTickDelay(300);
                        *((uint32_t *)USBD_ATTR)|=USBD_RWAKEUP;
                }

使用特权

评论回复
 楼主 | 2019-8-11 11:33 | 显示全部楼层
问题被完美解决,哈哈哈哈哈哈哈哈[em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:][em:3:]

使用特权

评论回复
| 2019-8-12 20:27 | 显示全部楼层
2019-8-12 20:18
您的回复 怎么实现的?USB可以中断? 被 wendenggo 屏蔽帖子
违规内容,如有异议,请与管理员联系,否则内容将在一周后自动删除

使用特权

评论回复
| 2019-8-12 20:45 | 显示全部楼层
怎么实现的,分享一下,USB怎么唤醒?是相当于电脑进入休眠,按键盘就唤醒那种吗

使用特权

评论回复
| 2019-8-12 23:48 | 显示全部楼层
楼主搞出来了要分享啊。

使用特权

评论回复
| 2019-8-13 08:16 | 显示全部楼层
發個K STATE出去。
參考NUC123下的usb mouse 2例子
    /* Note HOST to resume USB tree if it is suspended and remote wakeup enabled */
    if(g_usbd_RemoteWakeupEn)
    {
        /* Enable PHY before sending Resume('K') state */
        USBD->ATTR |= USBD_ATTR_PHY_EN_Msk;

        /* Keep remote wakeup for 1 ms */
        USBD->ATTR |= USBD_ATTR_RWAKEUP_Msk;
        CLK_SysTickDelay(1000); /* Delay 1ms */
        USBD->ATTR ^= USBD_ATTR_RWAKEUP_Msk;
    }

    printf("device wakeup!\n");

使用特权

评论回复
| 2019-8-14 23:30 | 显示全部楼层
看帖学本事

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表