阅读:1543回复:6
关于PDIUSBD12的IN端点的问题
我使用PDIUSBD12的端点1的IN端点和端点2的IN端点进行数据的传输
(数据从PDIUSBD12传到主机)。在初始化的时候先把数据写到IN缓 冲区,产生中断(IN端点产生的中断)后,再把新的数据写到相应的 IN缓冲区。不知道这样做,数据的传送会不会有问题呢? 我现在遇到的问题如下: 复位后,第一次传输的数据不确定(主机第一次接收到的数据不是设 定的数据),以后每一次接收的数据都正确。请问PDIUSBD12的IN缓冲 区在复位后是不是不确定的呢?还是我上面所说的固件结构有问题? |
|
最新喜欢:![]() |
沙发#
发布于:2005-03-30 08:57
每次传输前设定数据就可以了
|
|
|
板凳#
发布于:2005-03-30 10:52
每次传输前我都设定了数据的,但复位后第一次传输的数据就出错
|
|
地板#
发布于:2005-03-30 19:49
我之前碰到的问题是由于第一次写数据到缓冲区是在枚举之前所致。
现在又碰到新的问题,如下: 1.我在枚举之后写了16字节的数据到端点1的IN端点,写了64字节数据到端点2的IN端点。接收数据的时候,端点1每次发送过来的数据都正确,但端点2第一次发送过来的数据错误,以后发送过来的数据正确。 2.我在枚举之后写了16字节的数据到端点1的IN端点,连续写了2次64字节的数据到端点2的IN端点。接收数据的时候,端点1和端点2每次发送过来的数据都正确 请问是什么原因呢?是由于D12的端点2有双缓冲区所致吗? |
|
地下室#
发布于:2005-03-31 15:21
问题解决了,原来固件中有Bug
|
|
5楼#
发布于:2005-04-01 09:20
你好,我也遇到了同样的问题,第一个数据包总是错的,下面的数据包都是对的,请问你是怎么解决的,谢谢!!!!!
|
|
6楼#
发布于:2005-04-01 11:55
我原来有Bug的固件是在BusReset后使端点1、2的IN端点的缓冲区有效(没有写数据)。后来不要那段代码,数据的传输就正确了。应该是由于原来的固件使主端点双缓冲区的切换发生了错误。如果你的情况不是那样的话,可以在第一次写数据到IN缓冲区前清缓冲区(端点2的IN缓冲区可能需要清2次),然后再写数据,那样的话,传输的数据是正确的。但这样做只是取巧,还是应该好好查一查固件的Bug。
|
|