打印
[应用方案]

【求助】USB带电状态下枚举后第一次数据上传,PC收不到

[复制链接]
335|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2021-3-4 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


各位大佬好,我在工作使用NUC123这款设备,发现芯片带电情况下进行USB枚举后的第一次的上传数据,
PC有几率收不到,通过Debug发现设备发送了,但是PC就是没收到。
于是在NUC123例程Keyboard的基础上做了小修改,通过短接连接PD2( 64 pin51引脚)和地,每连接一次会上传keyboard的两条数据 00 00 04 00 00 00 00 00 和 00 00 00 00 00 00 00 00从而输出一个字母a,但是发现实际测试中设备带电下插上USB枚举后的第一次操作,同样有几率PC收不到00 00 04 00 00 00 00 00只能收到00 00 00 00 00 00 00 00,请问各位大佬有遇到这种情况吗?

使用特权

评论回复
沙发
海滨消消| | 2021-3-4 10:43 | 只看该作者
第一次应该在main之前放入usb buffer之中,後开usb中断,才会第一次取走00 00 04 00 00 00 00 00的资料。
int32_t main(void)
{
    /* Unlock protected registers */
    SYS_UnlockReg();

    SYS_Init();
    UART0_Init();

    printf("\n");
    printf("+--------------------------------------------------------+\n");
    printf("|          NuMicro USB HID Keyboard Sample Code          |\n");
    printf("+--------------------------------------------------------+\n");
    printf("If PB.15 = 0, just report it is key 'a'.\n");

    USBD_Open(&gsInfo, HID_ClassRequest, NULL);

    /* Endpoint configuration */
    HID_Init();
    USBD_Start();
    buf[2] = 0x04; /* Key A */
    USBD_SET_PAYLOAD_LEN(EP2, 8);
    NVIC_EnableIRQ(USBD_IRQn);

    /* start to IN data */
    g_u8EP2Ready = 1;
   
    GPIO_SetMode(PD, BIT2, GPIO_PMD_INPUT);
    GPIO_EnableInt(PD, 2, GPIO_INT_FALLING);
    NVIC_EnableIRQ(GPCDF_IRQn);
    GPIO_SET_DEBOUNCE_TIME(GPIO_DBCLKSRC_LIRC, GPIO_DBCLKSEL_2);
    GPIO_ENABLE_DEBOUNCE(PD, BIT2);
   
    while(1)
    {
        HID_UpdateKbData();
    }
}

使用特权

评论回复
板凳
duo点| | 2021-3-4 10:45 | 只看该作者

這跟上電無關,usb enum之後,就開始要資料。
先把endpoint 2資料準備好,讓usb取走

使用特权

评论回复
地板
一刀一级| | 2021-3-4 10:47 | 只看该作者

是的,基本上USB DEVICES都是准备好资料,让主机端来拿走。

使用特权

评论回复
5
onlycook| | 2021-3-4 10:50 | 只看该作者

1.如果是需要提前上传,为什么这个现象是有再现率的呢?
2.如果有再现率的话,用户在插上键盘后有概率通过Bus Hound抓包发现第一条无效数据,这个能避免吗
照我的流程,用catc抓是正常的
代碼跟你的電池供電無關。
基本上,mcu有電就開始跑代碼。
有usb plug event的時侯,就可以先寫資料到usb usb buffer之中。

使用特权

评论回复
6
观海| | 2021-4-1 16:39 | 只看该作者
跟上电没有关系的

使用特权

评论回复
7
guanjiaer| | 2021-4-1 16:40 | 只看该作者
无关带电不带电

使用特权

评论回复
8
heimaojingzhang| | 2021-4-1 16:42 | 只看该作者
为什么需要提前上传啊

使用特权

评论回复
9
这个不错的,很棒的。

使用特权

评论回复
10
keaibukelian| | 2021-4-1 17:08 | 只看该作者
会不会是因为有干扰

使用特权

评论回复
11
labasi| | 2021-4-1 17:09 | 只看该作者
要先准备好资料

使用特权

评论回复
12
勇敢的大白菜| | 2021-4-1 18:04 | 只看该作者
你的协议是有问题的,一定有问题的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1199

主题

3089

帖子

0

粉丝