[STM32F1] stm32 usb寄存器地址定义问题

[复制链接]
 楼主| JFIA 发表于 2015-6-15 11:23 | 显示全部楼层 |阅读模式
#define _GetENDPOINT(bEpNum)        ((u16)(*(EP0REG + bEpNum)))

#define ENDP0   ((u8)0)
#define ENDP1   ((u8)1)
#define ENDP2   ((u8)2)
#define ENDP3   ((u8)3)
#define ENDP4   ((u8)4)
#define ENDP5   ((u8)5)
#define ENDP6   ((u8)6)
#define ENDP7   ((u8)7)

这个地址经过计算,偏移00h, 01h,02h……
 楼主| JFIA 发表于 2015-6-15 11:25 | 显示全部楼层
USB寄存器映像 ,寄存器和描述的不一样啊
香水城 发表于 2015-6-15 15:06 | 显示全部楼层
F1的USB库有两个,一个是最新的Cube库,一个是legacy的全速USB设备库。

顶楼代码是哪个库里的,请说明。
香水城 发表于 2015-6-15 17:48 | 显示全部楼层
代码里是16位指针,因此每个端点的寄存器,即EPnR是2个字节地址的间隔,但这个是从AHB的角度。

而从手册上的register map表格看到的,间隔4个地址,是从APB角度来列出的。因为:

Due to the common limitation of APB1
bridges on word addressability, all register addresses are aligned to 32-bit word boundaries
although they are 16-bit wide.


icecut 发表于 2015-6-15 18:19 | 显示全部楼层
括号放错了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部