首页 | 嵌入式系统 | 显示技术 | 模拟IC/电源 | 元件与制造 | 其他IC/制程 | 消费类电子 | 无线/通信 | 汽车电子 | 工业控制 | 医疗电子 | 测试测量
首页> 分享下载> 常用文档> PDIUSBD12固件软件包(V5.0)使用心得

PDIUSBD12固件软件包(V5.0)使用心得

资料介绍
接口/总线/驱动技术

PDIUSBD12固件软件包(V5.0)使用心得
发布日期:2009-3-16 19:27:20 文章来源:搜电 浏览次数: [pic]9
[pic][pic][pic]
说句实在话,ZLG团队做的软件包真的非常好,非常专业!基本上不用怎么修改就可以直
接使用。不过在使用过程中,还是有些地方需要我们去注意。以下是我们公司在使用过
程中出现的情况,请ZLG团队及D12的用户们多多交流!

1.
当MCU通过D12发数据给主机时不能简简单单的调用写函数,如下:D12_WriteEndpoint(
5,64,filebuffer);
如果您用的是51等慢速的单片机可能没什么事情,当用ARM等快速的处理器作大量数据传
输时可能会出现丢包的现象。在MCU连续的给主机发包的过程中,主机还没有将上一个包
的数据从D12读走(就是D12的缓冲区处于满的情况),MCU又将另一个包写进去时会覆盖
掉以前的。因此在每写入一个包时必须先判断 D12有没有空的缓冲区,如下:
while (1) //如果端点的两个缓冲区都为满,则等待
{
outportb(D12_COMMAND,0x85);
EndpState = inportb(D12_DATA);
EndpState &= 0x60;
if (EndpState != 0x60) //有空缓冲区,则发送数据
{
break;
}
}
D12_WriteEndpoint(5,64,filebuffer);

2.
同样,在主机给MCU发送大量数据时也可能会产生丢包的情况。起初我们的MCU是直接查
询bEPPflags.bits.ep2_rxdone来判断D12是否收到主机数据,然后读取。下面的代码在
主程序中执行,如下:
i
标签: PDIUSBD12软件包(V5.0)
PDIUSBD12固件软件包(V5.0)使用心得
本地下载

评论