首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stm32f3 USB工作不稳定

stm32f3 USB工作不稳定
EN

Stack Overflow用户
提问于 2016-06-27 07:03:30
回答 3查看 1.2K关注 0票数 0

我正在编写STM32F373RCT程序,我一直在尝试制作一个USB虚拟comport设备。如果我以每秒960比特的速度发送数据(我使用的是计时器(50 is ),并且在每一个周期中发送14个字节),那么通信是正确工作的,但是如果我试图发送更多的数据,就会丢失一些数据。我必须提高数据传输速度。我该怎么增加?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-03 09:48:05

我发现了问题。在我的代码中,3个定时器中断是活动的,它们设置为高优先级。USB中断设置为低优先级。当USB连接到计算机时,新代码将停止计时器的中断。USB通讯现在稳定。非常感谢你的评论。

票数 0
EN

Stack Overflow用户

发布于 2016-06-27 18:19:54

USB有内置的流量控制,所以你应该能够尽快发送数据,而不会丢失任何数据。在您正在使用的USB堆栈中,或者在用于将数据发送到USB堆栈的代码中,都存在错误。如果您能够识别并修复该错误,那么您应该能够以更快的速度发送数据,而不会丢失任何东西。

票数 0
EN

Stack Overflow用户

发布于 2016-07-02 06:10:23

这可能是驱动程序或相关设置的错误。我的一个使用STM32F103通过USB以600 600KBytes/s的速度发送数据的项目曾经用VCP完成,并且运行良好,直到Linux内核更新。新内核附带了一个驱动程序,该驱动程序以高速度随机丢弃数据,可能是由于不同的缓冲区设置所致。

为了解决这个问题,我切换到libusb,并在用户空间中处理所有批量数据包。它在可靠性和延迟(如果使用异步API )方面都运行得很好。

我还制造了基于STM32F103的设备,这些设备与flashrom一起工作,可以在VCP上以800 800KBytes/s的速度传输,不会有任何损失或问题,所以我想更多的是关于缓冲区设置的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38047739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档