打印

只能接受到4kb之前的数据

[复制链接]
1454|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gongche|  楼主 | 2012-12-8 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
cy7c68013的芯片,遇到一个问题,发送文件最大为4kb,如果大于4kb,只能接受到4kb之前的数据。
沙发
huwr| | 2012-12-8 09:59 | 只看该作者
用的bulk传输?

使用特权

评论回复
板凳
gongche|  楼主 | 2012-12-8 10:01 | 只看该作者
端点2配置成512,4倍缓冲,利用端点2中断,将数据取出来,发到串口

使用特权

评论回复
地板
huanghuac| | 2012-12-8 10:05 | 只看该作者
哦,就是一个usb转串口

使用特权

评论回复
5
gongche|  楼主 | 2012-12-8 10:10 | 只看该作者
我这个不知道是什么模式,不是slavefifo,也不是gpif fifo模式

使用特权

评论回复
6
happy_10| | 2012-12-8 10:10 | 只看该作者
你用到了端点2,我觉得应该是普通的端口模式

使用特权

评论回复
7
冰清玉洁| | 2012-12-8 10:16 | 只看该作者
如果硬件上没有连接GPIF管脚,那么就用不到GPIF波形设计器来控制端点的传输。该端点就是普通的端点缓冲区存取。

使用特权

评论回复
8
gongche|  楼主 | 2012-12-8 10:18 | 只看该作者
大家刻字机听过没,我就是把雕刻软件从usb发送的数据,我再把它转到串口,我不知道怎么做,就是数据从断点2传输数据呢?

使用特权

评论回复
评论
江枫渔火 2012-12-8 15:50 回复TA
咋这么麻烦,不是有UART转TTL工具么? 新塘的M0系列芯片有VCOM的例程,直接就可以用,做一个虚拟串口 
9
wenfen| | 2012-12-8 10:21 | 只看该作者
手册专门有一章说到端点缓冲区存取。上面有控制端点2468的寄存器,就是说如果操作这几个端点,只能用到这些寄存器。比较明显的寄存器是缓冲区空、满等标志。

使用特权

评论回复
10
zhuhuis| | 2012-12-8 10:25 | 只看该作者
嗯,这些标志都是在主循环TD_Poll()中判断的,而不是弄到了端点缓冲区中断函数里。

使用特权

评论回复
11
zhuhuis| | 2012-12-8 10:25 | 只看该作者
就目前的资料,中断函数里你是无法准确了解USB的行为,试图在中断函数里每接收到一个字节就将它发送到串口,我觉得你的写法不可靠。

使用特权

评论回复
12
tian111| | 2012-12-8 10:30 | 只看该作者
恐怕你用端点2,就得等它写满了,再停下来逐个字节显示到串口。

使用特权

评论回复
13
宋倩2010| | 2012-12-8 10:34 | 只看该作者
如果一定要接收一个字节就显示,那么可以考虑用控制端点0。

使用特权

评论回复
14
宋倩2010| | 2012-12-8 10:34 | 只看该作者
端点0每接收到一个字节,你都可以设置STALL=1,来停滞传输,串口显示后再开始接收下个字节。

使用特权

评论回复
15
gongche|  楼主 | 2012-12-8 10:37 | 只看该作者
哦,这样啊

使用特权

评论回复
16
chenho| | 2012-12-8 10:41 | 只看该作者
在中断函数里可以了解缓冲区状态,但一般也要等缓冲区满了才显示。

使用特权

评论回复
17
huwr| | 2012-12-8 10:43 | 只看该作者
留意一下其中的STALL位,也许它能使得传输停滞,就像上述所说端点0那样。

使用特权

评论回复
18
huwr| | 2012-12-8 10:47 | 只看该作者
不过我没试过。

使用特权

评论回复
19
gongche|  楼主 | 2012-12-8 10:50 | 只看该作者
哦,仍然感谢

使用特权

评论回复
20
gongche|  楼主 | 2012-12-8 10:50 | 只看该作者
先结贴了

使用特权

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

本版积分规则

768

主题

9410

帖子

2

粉丝