Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2150702
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: LINUX

2012-06-15 20:35:48

按照书的讲解自己写USB枚举部分,发现USB端点0输入中断一直无法产生。
   1.首先是怀疑是不是没有清理中断位,导致没有EP0的输入中断产生?
    刚进入UsbEp0Out函数时,就调用了D12ReadEndpLastStatus(0);这个函数清中断了,应该不是这个问题。

点击(此处)折叠或打开

  1. uint8 D12ReadEndpLastStatus(uint8 Endp)
  2. {
  3.     // This command also resets the corresponding interrupt ?ag 
  4.     // in the interrupt register
  5.     D12WriteCommand(0x40+Endp); //Read last transaction status register
  6.     return D12ReadByte();
  7. }

   2.再次是怀疑是不是中断时间太长了,导致端点0中断没有响应?
       以前感觉书中的打印太乱了,于是就写了自己的printf打印,把UsbEp0Out中的这些printf全部删去,USBEpOIn的printf就不删了,要不就算是发生了EPO输入中断也不知道。
       幸福来的太突然了,这次竟然打印出了EP0输入中断。
  3.分析一下原因:
    书中P92上部,“当前面的数据成功发送后,端点0输入中断就会产生”。
阅读(5054) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~