graycker 发表于 2017-8-21 22:27:44

C8051F USB怎么发送0长度字节数据?

在枚举过程中,因为枚举都是USB中断里自动处理的,找不到入口。

graycker 发表于 2017-8-22 08:57:12

STM32的也行,有了解的没?深圳附近可以请吃饭感谢{:cry:}

huangqi412 发表于 2017-8-22 09:52:14

既然是通信,收发都有包内容+包长度。         TX先填充内容后写长度再使能发送         RX先判断长度后转存数据最后释放端点

        //发送0字节
        void usbep_send0(u8 ep)
        {
             //填充包内容0字节无内容略
           SET_TXEP_LENG(0)//标记数据量                       
           TXEN_EN()//使能端点发送
        }

大概这个意思

graycker 发表于 2017-8-22 11:21:57

huangqi412 发表于 2017-8-22 09:52
既然是通信,收发都有包内容+包长度。         TX先填充内容后写长度再使能发送         RX先判断长度后 ...

因为是枚举过程发送0字节长度数据,直接调用试过不行,应该要模拟get_report或者什么状态,现在不知道怎么发送出去。

huangqi412 发表于 2017-8-22 11:44:17

graycker 发表于 2017-8-22 11:21
因为是枚举过程发送0字节长度数据,直接调用试过不行,应该要模拟get_report或者什么状态,现在不知道怎 ...

。。。。假设枚举某次发送18个字节,EP0_TX_SIZE=8,如何发送的?            电脑要--->单片机给8字节--》电脑收到应答--》单片机给8字节--》电脑收到继续应答--》单片机给2字节--》电脑收到应答--》单片机不再给。   如果换成别的数量一样,共同点在:电脑先要,一要就会产生中断。要到了会说一声,说一声也会产生中断。      别人要,你给不给你看自己心情。别人要到了告诉你,你继续给不给也看你心情。    如何看心情?看你状态,手中无粮想给也给不了,留着给其他人的也不能乱给。         什么时候给如何给?别人要的时候,以及别人收到了告诉你的时候,填缓冲和标记尺寸给。            这两个时候在哪?在中断分支树里某一分支,中断IF/ELSE分支好几层。

graycker 发表于 2017-8-22 17:46:03

huangqi412 发表于 2017-8-22 11:44
。。。。假设枚举某次发送18个字节,EP0_TX_SIZE=8,如何发送的?            电脑要--->单片机给8字 ...

弄了一下午,还是没能找到地方。。。能写个示例不。。

graycker 发表于 2017-8-22 21:30:50

huangqi412 发表于 2017-8-22 11:44
。。。。假设枚举某次发送18个字节,EP0_TX_SIZE=8,如何发送的?            电脑要--->单片机给8字 ...

那个返回0字节长度包,USB协议里都已经写了,现在是需要在空闲的时候主动发送0字节数据包(现有上位机驱动要求的)。不知道在哪里加才能正常通过。

huangqi412 发表于 2017-8-23 09:02:26

graycker 发表于 2017-8-22 21:30
那个返回0字节长度包,USB协议里都已经写了,现在是需要在空闲的时候主动发送0字节数据包(现有上位机驱 ...

主动个屁 主从模式人家不要你不能强给

graycker 发表于 2017-8-24 22:22:18

试过还是不行,可以发一个多个0,但发不了0字节长度数据,不懂,晚点换软硬件环境测下。
页: [1]
查看完整版本: C8051F USB怎么发送0长度字节数据?