打印
[STM32F4]

STM32F4Cube库CDC类试用手记(含USB全速/高速和VC测试程序)

[复制链接]
楼主: 碧云天书
手机看帖
扫描二维码
随时随地手机跟帖
261
谢谢分享

使用特权

评论回复
262
wangguanfu| | 2016-8-15 08:25 | 只看该作者
非常不错,学习中

使用特权

评论回复
263
xiaoweicindy| | 2016-8-17 16:25 | 只看该作者
楼主,你好,我现在在做这个USB CDC的通信,遇到一个问题,单包发没有问题,如果连续发多包 ,USBD_CDC_TransmitPacket一直返回USBD_BUSY,就不能再发送了,请问要怎么解决,谢谢

使用特权

评论回复
264
碧云天书|  楼主 | 2016-8-20 21:47 | 只看该作者
xiaoweicindy 发表于 2016-8-17 16:25
楼主,你好,我现在在做这个USB CDC的通信,遇到一个问题,单包发没有问题,如果连续发多包 ,USBD_CDC_Tra ...

这表示上一个数据包发送尚未成功。你是一开始发包就遇到这个问题,还是一段时间以后发生的?
如果没有修改过程序,不应该出现这个情况的。
如果修改过程序,注意看一下有没有发送CCM SRAM内的数据,有就一定会卡死。

使用特权

评论回复
265
硫酸亚铁| | 2016-9-7 21:04 | 只看该作者
你好,我按照的您的例子然后加到我们项目后,使用串口调试工具调试。每10毫秒stm32向上位机发送数据,数据发送包为256字节,然后同时,上位机也以10ms向其发送数据,一开始上位机还能收到数据,但一段时间之后,上位机就接收不到数据了,但是向stm32发送数据还是有反应的。不知道是不是一次发太多然后卡死了?但是速度应该是够的啊。然后将数据包改位128个字节,目前还没怎么出现上面那种情况。改为512字节甚至是1024字节,更短时间的时间也是上位机能发不能收了。进入USBD_CDC_TransmitPacket(&USBD_Device);后,发现它return USBD_BUSY了。另外我使用的是全速设备。请问下楼主遇到过这种情况吗,或者大概问题出在哪里,没怎么看过USB协议,望指点一二!

使用特权

评论回复
266
fireberg| | 2016-9-23 15:48 | 只看该作者
楼主的精神值得敬佩!

使用特权

评论回复
267
xiaoweicindy| | 2016-9-26 17:33 | 只看该作者
碧云天书 发表于 2016-8-20 21:47
这表示上一个数据包发送尚未成功。你是一开始发包就遇到这个问题,还是一段时间以后发生的?
如果没有修 ...

是初始化的问题,感谢您的帮助

使用特权

评论回复
268
407214944| | 2016-10-20 13:50 | 只看该作者
您好!你2楼这个是在STM32F429平台上开发的吧,我移植到STM32F407上需要做哪些修改呢?
对比了下俩者规格书,没啥不同啊。代码烧进去,设备管理器上动都不动,实在无从下手,希望指引一下。

使用特权

评论回复
269
dun2011| | 2016-11-15 11:34 | 只看该作者
大牛,问一下,我使用你的程序CDC工作正常,我用最新的STM32cubemx软件生产 STM32F407 USB3300 高速CDC ,插上PC后,PC设备管理器都没有反应,请帮忙分析一下,谢谢了。

使用特权

评论回复
270
郁海难填| | 2016-11-27 14:43 | 只看该作者
多谢楼主,实测FS的输入输出都是1M+

使用特权

评论回复
271
dql2015| | 2016-12-12 17:19 | 只看该作者
牛人 ,顶一个  

使用特权

评论回复
272
chanqj| | 2016-12-14 09:26 | 只看该作者
LZ还有关注这个帖子吗?我用楼主的code测试连续读写。每30ms执行一次UsbPrintf("1");,每100ms PC发一次0x55到STM32,用BusHound监视数据,发现读一段时间后STM32的Read会挂掉,写还是正常但每32个1才写一次,见下图。现在我还没找到问题原因,请问楼主有发现过这个问题吗?

QQ截图20161214092629.png (61.71 KB )

QQ截图20161214092629.png

使用特权

评论回复
273
a23667562| | 2016-12-16 17:34 | 只看该作者
感謝分享!!!

使用特权

评论回复
274
碧云天书|  楼主 | 2016-12-21 16:09 | 只看该作者
chanqj 发表于 2016-12-14 09:26
LZ还有关注这个帖子吗?我用楼主的code测试连续读写。每30ms执行一次UsbPrintf("1");,每100ms PC发一次0x5 ...

近期任务比较紧,所以没来看。有时间我还是会关注本帖的。
我没有遇到过这种情况。你能给出发送和接收的代码吗?

使用特权

评论回复
275
碧云天书|  楼主 | 2016-12-21 16:11 | 只看该作者
dun2011 发表于 2016-11-15 11:34
大牛,问一下,我使用你的程序CDC工作正常,我用最新的STM32cubemx软件生产 STM32F407 USB3300 高速CDC , ...

建议你用USBlyzer或BUS Hound看一下插入的时侯发生了什么事件

使用特权

评论回复
276
碧云天书|  楼主 | 2016-12-22 11:39 | 只看该作者
407214944 发表于 2016-10-20 13:50
您好!你2楼这个是在STM32F429平台上开发的吧,我移植到STM32F407上需要做哪些修改呢?
对比了下俩者规格书 ...

这是在STM32F407上开发的。请你先检查硬件线路是否正确。

使用特权

评论回复
277
碧云天书|  楼主 | 2016-12-22 11:45 | 只看该作者
硫酸亚铁 发表于 2016-9-7 21:04
你好,我按照的您的例子然后加到我们项目后,使用串口调试工具调试。每10毫秒stm32向上位机发送数据,数据 ...

按照你的描述,可能是碰到HAL库协议栈的bug了。请参考香版最新贴修改代码后再试一下。
https://bbs.21ic.com/forum.php?mod=viewthread&tid=1652524&extra=page%3D11&mobile=2

使用特权

评论回复
278
chanqj| | 2016-12-22 12:08 | 只看该作者
本帖最后由 chanqj 于 2016-12-22 12:12 编辑
碧云天书 发表于 2016-12-21 16:09
近期任务比较紧,所以没来看。有时间我还是会关注本帖的。
我没有遇到过这种情况。你能给出发送和接收的 ...

楼主我已经解决了
USBD_CDC_ReceivePacket(&USBD_Device);  不能放在接收中断的回调函数CDC_Itf_Receive()中,否则就会出现我上面说的连续同时收发一段时间后挂掉,挂掉的时间没有规律。
很谢谢楼主的CDC代码,我用了后省了很大部分功夫。

使用特权

评论回复
279
碧云天书|  楼主 | 2016-12-23 16:45 | 只看该作者
chanqj 发表于 2016-12-22 12:08
楼主我已经解决了
USBD_CDC_ReceivePacket(&USBD_Device);  不能放在接收中断的回调函数CDC_Itf_Receive() ...

谢谢你共享解决方案!

使用特权

评论回复
280
232321122| | 2017-4-5 22:36 | 只看该作者
CDC类是什么

使用特权

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

本版积分规则