打印

请问stm32 USB FS Device Lib中Custom_HID与Mass_Storage范例的ENDP0_RXADDR

[复制链接]
4561|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hmjack2008|  楼主 | 2013-1-23 12:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hmjack2008 于 2013-1-23 12:44 编辑

请问一件事:
stm32 USB FS Device Lib (v3.4.0)中的范例:
Custom_HID与Mass_Storage范例中的 #define ENDP0_RXADDR  (0x18) 是否与ENDP1_RXADDR或ENDP2_RXADDR        地址重迭了吗 ??
因为按照PMAAddr 起始地址0x40006000计算如下:
EndPointDirectionRegisterLengthPMA_Addr_BeginPMA_Addr_End
40006000  HexHexHex
EP0Tx0AddrTx044000600040006003
  CountTx044000600440006007
 Rx0AddrRx04400060084000600B
  CountRx044000600C4000600F
EP1Tx1AddrTx144000601040006013
  CountTx144000601440006017
 Rx1AddrRx14400060184000601B
  CountRx144000601C4000601F
EP2Tx2AddrTx244000602040006023
  CountTx244000602440006027
 Rx2AddrRx24400060284000602B
  CountRx244000602C4000602F
但是实际运行Mass_Storage,数据读写又正常, 想不懂为何 #define ENDP0_RXADDR 设定为 (0x18) ??

Custom_HID范例 : usb_conf.h文件中定义
/* defines how many endpoints are used by the device */
#define EP_NUM        (2)
/* buffer table base address */
#define BTABLE_ADDRESS        (0x00)
/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR                (0x18)
#define ENDP0_TXADDR                (0x58)
/* EP1  */
/* tx buffer base address */
#define ENDP1_TXADDR                (0x100)
#define ENDP1_RXADDR        (0x104)


Mass_Storage范例 : usb_conf.h文件中定义
/* defines how many endpoints are used by the device */
#define EP_NUM        (3)
/* buffer table base address */
#define BTABLE_ADDRESS        (0x00)
/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR                (0x18)
#define ENDP0_TXADDR                (0x58)
/* EP1  */
/* tx buffer base address */
#define ENDP1_TXADDR                (0x98)
/* EP2  */
/* Rx buffer base address */
#define ENDP2_RXADDR        (0xD8)


沙发
lanmanck| | 2017-6-15 15:24 | 只看该作者
对啊,咋回事不一样的?

使用特权

评论回复
板凳
wh13651| | 2017-6-29 18:04 | 只看该作者
同问,难道这里用的是单个字节吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

19

帖子

0

粉丝