返回该小组首页 回复主题
huhaobo0120

huhaobo0120

小组等级:     E币:110  (E币换礼)

#1楼主:PIC+D12问题

文章发表于:2008-06-13 04:36

我把computer00的C51+D12的程序移植到dsPIC30F6014a上,可以正确的读ID,可以设置DMA,和读DMA,但是就是枚举不成功,请问有没有哪位高手试过!!!

computer00

   小组等级:    E币:10072  (E币换礼)

#2

文章发表于:2008-06-13 19:18

可能是大小端结构问题。如果是非8位机,还存在着结构体对齐和填充问题。另外操作速度也有影响。

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#3

文章发表于:2008-06-14 08:54

你好!这几个问题我考虑过,我用的是16位的,时序我考虑过,没什么问题,就是大小端,和结构问题了。因为我对结构对齐不是很了解,我用的编译器是也支持结构对齐的属性,__attribute((packed))__但是又说了:“器件要求按偶字节对齐”不是很明白。希望能指点指点!!!!

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#4

文章发表于:2008-06-14 09:11

不好意思!,__attribute((packed))__写错了,应该是__attribute__((packed))  ;

liangjlong

   小组等级:    E币:85  (E币换礼)

#5

文章发表于:2008-06-14 23:00

结构中的每个变量定位在偶地址,

可反汇编,看一下结构中各变量的地址

computer00

   小组等级:    E币:10072  (E币换礼)

#6

文章发表于:2008-06-15 10:14

可以考虑将结构体改成数组。

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#7

文章发表于:2008-06-16 09:44

首先感谢各位大侠的建议!!

“结构中的每个变量定位在偶地址”??这句话怎么讲??用了__attribute__((packed))  不就不是偶地址了吗??应该是按顺序排列的啊??

computer00的例子是怎么考虑的?我用的MCU是小端模式的,也是要求偶字节对齐的。

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#8

文章发表于:2008-06-16 11:46

经过不懈的努力,我终于读到了,   80 06 00 01  00 00 40 00                            GET DESCRIPTOR  谢谢各位的支持!加油!@

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#9

文章发表于:2008-06-18 11:11

我的串口调试收到的数据

USB总线挂起.
读端点0's缓冲 8字节.
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
Ack setup 0.
Ack setup 1.
清缓冲区.
USB标准输入请求.
获取描述符.
获取设备描述符.
Write endpoint1's buffer 16 bytes.
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x71 0x04 0x22 0x02 0x13 0x01 0x00 0x00
缓冲区有效
USB总线复位.
读端点0's缓冲 8字节.
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
Ack setup 0.
Ack setup 1.
清缓冲区.
USB标准输入请求.
获取描述符.
获取设备描述符.
Write endpoint1's buffer 16 bytes.
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x71 0x04 0x22 0x02 0x13 0x01 0x00 0x00
缓冲区有效
USB总线复位.
读端点0's缓冲 8字节.
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
Ack setup 0.
Ack setup 1.
清缓冲区.
USB标准输入请求.
获取描述符.
获取设备描述符.
Write endpoint1's buffer 16 bytes.
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x71 0x04 0x22 0x02 0x13 0x01 0x00 0x00
缓冲区有效
USB总线挂起.

怎么会这样???难道没发上去???还是时间太长??

computer00

   小组等级:    E币:10072  (E币换礼)

#10

文章发表于:2008-06-18 12:29

继续加油调试...有可能是数据没有返回吧……不然的话,会收到设置地址的请求的……

huhaobo0120

   小组等级:    E币:110  (E币换礼)

#11

文章发表于:2008-06-19 11:49

谢谢00!今天又有进步了,

Device  Phase  Data                      Description       Cmd.Phase.Ofs(rep)  Delta
------  -----  ------------------------  ----------------  ------------------  -----
  10.1  DI     04                        .                        1.1.0         22sc 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               2.1.0         28us 
  10.0  DI     00 01 03 00               ....                     2.2.0         24us 
  10.0  CTL    23 01 11 00  02 00 00 00  CLEAR FEATURE            3.1.0          8us 
  10.1  DI     04                        .                        4.1.0        100ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               5.1.0(2)      18us 
  10.0  DI     00 01 01 00               ....                     5.2.0         18us 
  10.0  CTL    23 01 10 00  02 00 00 00  CLEAR FEATURE            7.1.0         95us 
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS               8.1.0         57us 
  10.0  DI     00 01 00 00               ....                     8.2.0         12us 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS               9.1.0         26us 
  10.0  DI     00 01 00 00               ....                     9.2.0         11us 
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              10.1.0        3.8ms 
  10.0  DI     00 01 00 00               ....                    10.2.0         43us 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              11.1.0         35us 
  10.0  DI     00 01 00 00               ....                    11.2.0         10us 
  10.1  DI     04                        .                       12.1.0        897ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              13.1.0(2)      53us 
  10.0  DI     01 01 01 00               ....                    13.2.0         22us 
  10.0  CTL    23 01 10 00  02 00 00 00  CLEAR FEATURE           15.1.0        354us 
  10.0  CTL    a3 00 00 00  01 00 04 00  GET STATUS              16.1.0        137us 
  10.0  DI     00 01 00 00               ....                    16.2.0         11us 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              17.1.0(2)      26us 
  10.0  DI     01 01 00 00               ....                    17.2.0         10us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             19.1.0        109ms 
  10.1  DI     04                        .                       20.1.0         90ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              21.1.0         25us 
  10.0  DI     03 01 10 00               ....                    21.2.0         24us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           22.1.0          8us 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              23.1.0         19ms 
  10.0  DI     03 01 00 00               ....                    23.2.0         14us 
  /////////////第一次获取设备描述符请求////////////////////// 
  10.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          24.1.0        160us 
  10.0  DI     12 01 10 01  00 00 00 10  ........                24.2.0        140ms 
               71 04 22 02  13 01 00 00  q.".....                24.2.8              
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              25.1.0        156us 
  10.0  DI     03 01 00 00               ....                    25.2.0         28us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             26.1.0         29us 
  10.1  DI     04                        .                       27.1.0         39ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              28.1.0         27us 
  10.0  DI     03 01 10 00               ....                    28.2.0         24us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           29.1.0          7us 
////////////////设置地址,地址为2/////////////////////////////////
  10.0  CTL    00 05 02 00  00 00 00 00  SET ADDRESS             30.1.0         19ms 
/////////////第二次获取设备描述符请求//////////////////////////////
  10.0  CTL    80 06 00 01  00 00 12 00  GET DESCRIPTOR          31.1.0        100ms 
////////////第二次返回了全部的18字节设备描述符//////////////////
  10.0  DI     12 01 10 01  00 00 00 10  ........                31.2.0        194ms 
               71 04 22 02  13 01 00 00  q.".....                31.2.8              
               00 01                     ..                      31.2.16             
  10.0  CTL    80 06 00 02  00 00 09 00  GET DESCRIPTOR          32.1.0        702us 
////////////返回9字节的配置描述符/////////////////////////////
  10.0  DI     09 02 34 00  01 01 00 80  ..4.....                32.2.0        129ms 
               32                        2                       32.2.8              
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              33.1.0        886ms 
  10.0  DI     03 01 00 00               ....                    33.2.0         42us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             34.1.0        134us 
  10.1  DI     04                        .                       35.1.0         69ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              36.1.0         27us 
  10.0  DI     03 01 10 00               ....                    36.2.0         25us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           37.1.0          9us 
//////////再一次获取设备描述符//////////////////////////////
  10.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          38.1.0         20ms 
  10.0  DI     12 01 10 01  00 00 00 10  ........                38.2.0        140ms 
               71 04 22 02  13 01 00 00  q.".....                38.2.8              
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              39.1.0         51us 
  10.0  DI     03 01 00 00               ....                    39.2.0         27us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             40.1.0         44us 
  10.1  DI     04                        .                       41.1.0         39ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              42.1.0         28us 
  10.0  DI     03 01 10 00               ....                    42.2.0         26us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           43.1.0          8us 
  10.0  CTL    00 05 02 00  00 00 00 00  SET ADDRESS             44.1.0         19ms 
  10.0  CTL    80 06 00 01  00 00 12 00  GET DESCRIPTOR          45.1.0        100ms 
  10.0  DI     12 01 10 01  00 00 00 10  ........                45.2.0        194ms 
               71 04 22 02  13 01 00 00  q.".....                45.2.8              
               00 01                     ..                      45.2.16             
  10.0  CTL    80 06 00 02  00 00 09 00  GET DESCRIPTOR          46.1.0        942us 
  10.0  DI     09 02 34 00  01 01 00 80  ..4.....                46.2.0        129ms 
               32                        2                       46.2.8              
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              47.1.0        887ms 
  10.0  DI     03 01 00 00               ....                    47.2.0         39us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             48.1.0         31us 
  10.1  DI     04                        .                       49.1.0         70ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              50.1.0         27us 
  10.0  DI     03 01 10 00               ....                    50.2.0         25us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           51.1.0          8us 
  10.0  CTL    80 06 00 01  00 00 40 00  GET DESCRIPTOR          52.1.0         20ms 
  10.0  DI     12 01 10 01  00 00 00 10  ........                52.2.0        140ms 
               71 04 22 02  13 01 00 00  q.".....                52.2.8              
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              53.1.0        147us 
  10.0  DI     03 01 00 00               ....                    53.2.0         27us 
  10.0  CTL    23 03 04 00  02 00 00 00  SET FEATURE             54.1.0         96us 
  10.1  DI     04                        .                       55.1.0         38ms 
  10.0  CTL    a3 00 00 00  02 00 04 00  GET STATUS              56.1.0         25us 
  10.0  DI     03 01 10 00               ....                    56.2.0         24us 
  10.0  CTL    23 01 14 00  02 00 00 00  CLEAR FEATURE           57.1.0          8us 
  10.0  CTL    00 05 02 00  00 00 00 00  SET ADDRESS             58.1.0         19ms 
  10.0  CTL    80 06 00 01  00 00 12 00  GET DESCRIPTOR          59.1.0        100ms 
  10.0  DI     12 01 10 01  00 00 00 10  ........                59.2.0        194ms 
               71 04 22 02  13 01 00 00  q.".....                59.2.8              
               00 01                     ..                      59.2.16             
  10.0  CTL    80 06 00 02  00 00 09 00  GET DESCRIPTOR          60.1.0        1.4ms 
  10.0  DI     09 02 34 00  01 01 00 80  ..4.....                60.2.0        128ms 
               32                        2                       60.2.8              
  10.0  CTL    23 01 01 00  02 00 00 00  CLEAR FEATURE           61.1.0        887ms 

这是我在2000下看到的,0x34个字的描叙符?但是你的是0x20个也不对,我数了数应该是9+9+7+7+7+7=46个。看看我说的对不。基本上就是结构的问题了。我有用了packed属性。但是大小没变。我准备改成数组试试!!

2【下一页】总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...