Usb 解释为什么mikroC';s PIC18F4550 HID示例工程

Usb 解释为什么mikroC';s PIC18F4550 HID示例工程,usb,microcontroller,pic,hid,Usb,Microcontroller,Pic,Hid,具有用于HID(人机接口设备)USB通信的库。在提供的示例中,他们指定以下缓冲区应为USB RAM,并使用PIC18F4550作为目标微控制器 unsigned char readbuff[64] absolute 0x500; // Buffers should be in USB RAM, please consult datasheet unsigned char writebuff[64] absolute 0x540; 但是PIC18F4550的数据表显示USB RAM的范围从4

具有用于HID(人机接口设备)USB通信的库。在提供的示例中,他们指定以下缓冲区应为USB RAM,并使用PIC18F4550作为目标微控制器

unsigned char readbuff[64] absolute 0x500;   // Buffers should be in USB RAM, please consult datasheet
unsigned char writebuff[64] absolute 0x540;
但是PIC18F4550的数据表显示USB RAM的范围从400小时到4小时

那么,当它们的缓冲区似乎不在400h到4FFh之间时,为什么它们的示例可以工作呢

.

实际上是说:

气缸组4(400h至4FFh)专门用于 端点缓冲区控制,而气缸组5到7是 可用于USB数据。取决于 在使用缓冲时,除了组4的8个字节外,其他所有字节也可以 可用作USB缓冲空间

因此,您引用的代码似乎是定义用于USB数据的缓冲区,而不是“endpoing buffer control”,因为它们位于第5列,而不是第4列。

实际上是说:

气缸组4(400h至4FFh)专门用于 端点缓冲区控制,而气缸组5到7是 可用于USB数据。取决于 在使用缓冲时,除了组4的8个字节外,其他所有字节也可以 可用作USB缓冲空间


因此,您引用的代码似乎是在定义用于USB数据的缓冲区,而不是“endpoing buffer control”,因为它们位于气缸组5而不是气缸组4中。

当USB HID模式激活时,为缓冲区描述符分配了从400h到4FFh的USB RAM内存范围。USB和用户数据的分配范围为500h到7ffh。重要的是,所有描述符缓冲区和数据缓冲区都将位于气缸组4-7的ram内存范围内。
谢谢

当USB HID模式激活时,为缓冲区描述符分配的USB RAM内存范围为400h到4FFh。USB和用户数据的分配范围为500h到7ffh。重要的是,所有描述符缓冲区和数据缓冲区都将位于气缸组4-7的ram内存范围内。 多谢各位