本帖最后由 re张风 于 2017-11-25 09:28 编辑
最近要用F103RC的USB来通讯,所以编译了官方提供的Cubef1 V1.6库中的CDC_Standalone工程例子,发现USB会出现异常,主要的现象是这样的: 将F103RC的USB接口插在WEC7嵌入式板子的USB-HOST端口,开始的一些时间,是正常的,每1ms一个SOF脉冲(该信号是使用示波器从USB+信号上采样,以下信号相同):
用VS2008基于WEC7写的串口程序,打开F103RC所虚拟的串口设备后,其波形中的数据量增加了,如下:
但有些时候,波形却会变宽了,如下:
使用USB口收/发数据通讯一下(主要是F103RC的USB口向外输出数据后),波形一下就变多了,在相同的示波器参数上,就像这样:
将其展开后(500us的格子,展开成5us),波形是这样的:
虽然波形变得不可理解,但还是能当作串口一样正常能讯。关闭WEC7系统中,F103RC所虚拟的串口端口,波形又变回最初的样子。 最后,最重要的是,不论是在哪种波形状态下,都会不停地消耗WEC7系统的内存(在一个WinCE6系统中,插上F103RC板子的USB到系统的USB-HOST,放了几个小时,就将30MB内存消耗完),这才是致命的。
有些时候,将F103RC的USB插在WEC7系统的USB-HOST上,不理会它,不知道什么时候,波形也变成最后的这种情况了,主机端并没有对USB虚拟串口进行任何打开/关闭/通讯的操作。如果将F103RC这个模块直接插到PC机,那么波形直接就变得非常密了(根本看不到1ms一次的SOF信号)!就上面最后一种波形情况,但也能通讯。由于PC机的内存太大了,看不出对内存的占用消耗情况。
对于这种情况,不知道有没有人遇到过?特来请教!
|