[STM32F4] 收到的数据应该从哪里去读取?

[复制链接]
1644|23
 楼主| 冰清玉洁 发表于 2016-1-26 21:42 | 显示全部楼层 |阅读模式
看了文档RM0090只看到了设置RxFIFO大小的寄存器OTG_FS_GRXFSIZ,没有找到起始地址在哪里,看到了一个Rx起始A1=0地址固定为0,不太明白含义。
收到的数据应该从哪里去读取?谢谢!
wenfen 发表于 2016-1-26 21:42 | 显示全部楼层

RX FIFO共用1个,默认在fifo的偏移为0,这个FIFO是在一个dedicated ram里面,用户可以不用关心,
zhuhuis 发表于 2016-1-26 21:42 | 显示全部楼层
对,读DFIFO寄存器到你的应用buf里即可~
 楼主| 冰清玉洁 发表于 2016-1-26 21:42 | 显示全部楼层
谢谢!
”读DFIFO寄存器到你的应用buf里即可“,这句话怎么理解?
happy_10 发表于 2016-1-26 21:44 | 显示全部楼层
啥意思啊
 楼主| 冰清玉洁 发表于 2016-1-26 21:45 | 显示全部楼层
比如RX FIFO里面有10个数据需要读取到应用buf里面,前面的地址怎么弄?
chenho 发表于 2016-1-26 22:04 | 显示全部楼层
是这样吗?
 楼主| 冰清玉洁 发表于 2016-1-26 22:04 | 显示全部楼层
可以通过一个寄存器(OTG状态读取和出栈寄存器)获取Rx FIFO这个地址,这个地址不是固定不变的。
gongche 发表于 2016-1-26 22:04 | 显示全部楼层
我的意思是只要去读,写DFIFO就可以了,
huwr 发表于 2016-1-26 22:05 | 显示全部楼层
看代码+手册,呵呵~
 楼主| 冰清玉洁 发表于 2016-1-26 22:08 | 显示全部楼层
这个代码吗?stm32cubef4.zip?里面信息很多,不知道具体看那一部分。
happy_10 发表于 2016-1-26 22:09 | 显示全部楼层
usb2.1库中接收fifo都是在DFIFO0处读取  相当于只用了一个rx fifo地址
但是   参考手册对dfifo的分配,每个通道都对应一个DFIFO寄存器进行读写
实际和手册出现矛盾了
huanghuac 发表于 2016-1-26 22:10 | 显示全部楼层
指的是F1还是F4呢,我看的是F4的手册~
happy_10 发表于 2016-1-26 22:11 | 显示全部楼层
啊呀  忘记说明了  是f1的  你在手册上看到是只有一个rx fifo吗  
huanghuac 发表于 2016-1-26 22:12 | 显示全部楼层
The OTG peripheral uses a single receive FIFO that receives the data directed to all OUT
endpoints.
happy_10 发表于 2016-1-26 22:12 | 显示全部楼层
我看了下F1系列也有这句话,但是TxFIFO也是一个FIFO呢

不知道你有没有注意到,读取rxFIFO总是从DFIFO0处读取,而txFIFO确实从DFIFO[通道号]读取
huanghuac 发表于 2016-1-26 22:12 | 显示全部楼层
可以看一下FIFO那张的图。。。
wenfen 发表于 2016-1-26 22:12 | 显示全部楼层
程序里面在usb_conf.h文件里面 F1和F4不一样的,F4是可以otg的
happy_10 发表于 2016-1-26 22:13 | 显示全部楼层
otg的这几款芯片的例子大同小异,放在一个工程里面的,define不同而已。我之前做过F2到F4的,没什么问题,没用过105
 楼主| 冰清玉洁 发表于 2016-1-26 22:13 | 显示全部楼层
嗯,我比较下哈,多谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

307

主题

3250

帖子

5

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