打印

关于STM32F102/103的USB模块和USB库函数

[复制链接]
楼主: vigia
手机看帖
扫描二维码
随时随地手机跟帖
121
puchuang| | 2013-8-28 19:09 | 只看该作者 回帖奖励 |倒序浏览
楼主   好强啊   需要好好膜拜   比较牛    顶一个

使用特权

评论回复
122
无冕之王| | 2013-8-28 19:28 | 只看该作者
讲解的通俗易懂

使用特权

评论回复
123
maqianzu| | 2013-9-4 14:06 | 只看该作者
很好很强大

使用特权

评论回复
124
lussby| | 2013-10-22 11:39 | 只看该作者
mark study! thank you!

使用特权

评论回复
125
lyl1011| | 2013-11-7 11:01 | 只看该作者
讲的太好了,谢谢

使用特权

评论回复
126
AD_DA| | 2013-11-28 15:50 | 只看该作者
受益匪浅

使用特权

评论回复
127
zeluo| | 2013-11-28 19:23 | 只看该作者
好**    楼主    这一块    了解的不多   需要花时间好好看看    楼主   谢谢你  

使用特权

评论回复
128
wp053341| | 2014-2-6 11:48 | 只看该作者
mark mark

使用特权

评论回复
129
翔飞云端| | 2014-3-19 16:48 | 只看该作者
楼主很轻大

使用特权

评论回复
130
hzq1976| | 2014-6-26 15:00 | 只看该作者

使用特权

评论回复
131
puqian| | 2014-7-11 07:19 | 只看该作者
您好,您的QQ是多少,想联系下您,有偿帮助

使用特权

评论回复
132
xialei8513| | 2014-8-1 16:05 | 只看该作者
楼主怎么没有下文了?

使用特权

评论回复
133
jackem| | 2014-8-8 19:05 | 只看该作者
mark一下 ,以后翻阅

使用特权

评论回复
134
yunjie167| | 2014-8-9 09:43 | 只看该作者
本帖最后由 yunjie167 于 2014-8-9 09:44 编辑

讲的非常好啊!
我看了下我的USB Mass Store里的使用了端点0、1、2。
其中端点0使用了IN和OUT,1使用了IN,2使用了OUT。备注我的程序里所有缓冲区大小都是64B
usb_conf.h中有如下的宏定义:
#define EP_NUM              (3)
#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)

正如楼主所说的,使用了3个端点,即Buffer Description Table 位于Packet Buffer的前24字节。

那么为了以后方便程序增加或减少端点,我可不可以写成这样:
#define EP_NUM                          (3)

/* buffer table base address */
#define BTABLE_ADDRESS      (0x00)

/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR        (EP_NUM*8+64*0)//(0x18)
#define ENDP0_TXADDR        (EP_NUM*8+64*1)//(0x58)

/* EP1  */
/* tx buffer base address */
#define ENDP1_TXADDR        (EP_NUM*8+64*2)//(0x98)

/* EP2  */
/* Rx buffer base address */
#define ENDP2_RXADDR        (EP_NUM*8+64*3)//(0xD8)

那假如现在我在Mass Store设备了,再增加一个HID设备,该设备有IN和OUT端点,分配为端点3为IN,4为OUT。
那么我是不是这样分配Packet Buffer:
#define EP_NUM                          (5)

/* buffer table base address */
#define BTABLE_ADDRESS      (0x00)

/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR        (EP_NUM*8+64*0)//(0x18)
#define ENDP0_TXADDR        (EP_NUM*8+64*1)//(0x58)

/* EP1  */
/* tx buffer base address */
#define ENDP1_TXADDR        (EP_NUM*8+64*2)//(0x98)

/* EP2  */
/* Rx buffer base address */
#define ENDP2_RXADDR        (EP_NUM*8+64*3)//(0xD8)

/* EP3  */
/* tx buffer base address */
#define ENDP3_TXADDR        (EP_NUM*8+64*4)

/* EP4  */
/* Rx buffer base address */
#define ENDP4_RXADDR        (EP_NUM*8+64*5)

使用特权

评论回复
135
STM32初学者| | 2014-8-30 09:31 | 只看该作者
楼主讲的不错,学习了

使用特权

评论回复
136
1398117027| | 2014-8-30 11:59 | 只看该作者
四年就更新了这么一点

使用特权

评论回复
137
小浣熊| | 2014-8-30 15:09 | 只看该作者
说的很好啊,感觉学到东西了!

使用特权

评论回复
138
布鲁诺| | 2014-10-13 12:48 | 只看该作者
很有用,还有其它有着USB作品吗

使用特权

评论回复
139
xieshifu| | 2014-10-21 19:59 | 只看该作者
mark

使用特权

评论回复
140
dytrhjl| | 2014-10-31 21:48 | 只看该作者
前一阵子由于公司失误在家休息了一年,无意中玩了玩单片机,发现很有趣。过了一段时间发现51不能满足自己的一些想法,于是开始玩玩stm32,很是郁闷,有点无从下手的感觉。看了很多书看了很多协议看了很多代码,圈圈和百合电子都不错,但是这个**才是我想要看的,虽然还有点不明白但是感觉再看程序感觉很光明了。谢谢分享

使用特权

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

本版积分规则