freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1325回复:5

bulk端口传输有点问题

楼主#
更多 发布于:2004-02-26 10:45
我使用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 缓冲区有效(满标志)
请高手指点~~
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-26 14:03
你的代码只是让D12响应下一次读操作。所以你的驱动程序一定要来读端点2。注意读的时候读数据长度也应该是34(你的代码中为34)。
A strong man can save himself. A great man can save another.
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-26 20:44
不是吧~??
我的bulk端点给的描述符是64个字节一次传输.
我给34个字节表示这一次传输结束了吧~~
我用usb debug调试,在端点2启动数据接受,可是没有任何数据
zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-26 22:46
老兄!我这里也没调通!现在一直在调!我想知道你这段程序是端点的in中断服务程序吗?端点1,2的in中断是在成功传完数时才产生的!你要是放在中断中的话是传不出去的!不知道我说的对不对!你要是调通了告诉我一下!谢谢了!我是把这段程序放在主循环中的用标志位控制的,不过也是有问题!
:)
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-26 23:49
frank说可以放在中断服务程序里面的~
调通了互相说一声吧
brickool
驱动牛犊
驱动牛犊
  • 注册日期2004-08-11
  • 最后登录2005-08-06
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-08 21:42
同意zmwk的观点,我希望你能考究一下你的上位机程序,有确定是读34B
同时,在固件中要保证能循环、响应IN指令,有可能是发送完了数据后因缓冲尚未置有效标志而无法响应IN指令
薄见
游客

返回顶部