阅读:1325回复:5
bulk端口传输有点问题
我使用d12做usb的控制芯片,枚举已经完成.
我向bulk端点送数据,结果电脑这边根本接收不到数据.下面是我这段原代码: D12_COMMAND = 0x45;//读 in 最后状态 i = D12_DATA; D12_COMMAND = 5;// 选择 IN 端点(指针指向0位置) D12_COMMAND = 0xf0;// 写缓冲区 D12_DATA = 0; D12_DATA = 34; for(i=0;i<34;i++) { D12_DATA = 1; } D12_COMMAND = 0xfa;// 设置 IN 缓冲区有效(满标志) 请高手指点~~ |
|
沙发#
发布于:2004-02-26 14:03
你的代码只是让D12响应下一次读操作。所以你的驱动程序一定要来读端点2。注意读的时候读数据长度也应该是34(你的代码中为34)。
|
|
|
板凳#
发布于:2004-02-26 20:44
不是吧~??
我的bulk端点给的描述符是64个字节一次传输. 我给34个字节表示这一次传输结束了吧~~ 我用usb debug调试,在端点2启动数据接受,可是没有任何数据 |
|
地板#
发布于:2004-02-26 22:46
老兄!我这里也没调通!现在一直在调!我想知道你这段程序是端点的in中断服务程序吗?端点1,2的in中断是在成功传完数时才产生的!你要是放在中断中的话是传不出去的!不知道我说的对不对!你要是调通了告诉我一下!谢谢了!我是把这段程序放在主循环中的用标志位控制的,不过也是有问题!
:) |
|
地下室#
发布于:2004-02-26 23:49
frank说可以放在中断服务程序里面的~
调通了互相说一声吧 |
|
5楼#
发布于:2005-03-08 21:42
同意zmwk的观点,我希望你能考究一下你的上位机程序,有确定是读34B
同时,在固件中要保证能循环、响应IN指令,有可能是发送完了数据后因缓冲尚未置有效标志而无法响应IN指令 薄见 |
|