搜索
bottom↓
回复: 203

真正可用STM32 USB IN端点 双缓冲发送 700K/s 不丢数 libusb上位机

  [复制链接]

出0入0汤圆

发表于 2014-3-18 08:37:59 | 显示全部楼层 |阅读模式
真正可用STM32 USB IN端点 双缓冲发送 700K/s左右 不丢数据
网上的我是没有找到一个可以用的,只好自己调试了,经过千辛万苦的调试终于调试成功了双缓冲发送
修改自stm32 vcp例程,修改为自定义bulk端点,用libusb驱动,带上位机
压缩包是7z格式,欢迎大家多多支持开源软件



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2014-3-18 08:38:42 | 显示全部楼层
顶上 谢谢亲哈

出0入0汤圆

发表于 2014-3-18 08:39:14 | 显示全部楼层
标记一下  

出0入12汤圆

发表于 2014-3-18 08:40:48 | 显示全部楼层
试试,多谢了

出0入0汤圆

 楼主| 发表于 2014-3-18 08:41:17 | 显示全部楼层
上位机为C#的,带源程序,全部开源,驱动使用libusb驱动向导生成,超级方便

出0入0汤圆

发表于 2014-3-18 08:42:41 来自手机 | 显示全部楼层
这个不错

出0入0汤圆

发表于 2014-3-18 08:50:57 | 显示全部楼层
牛X,顶一下

出0入0汤圆

发表于 2014-3-18 08:53:43 | 显示全部楼层

出0入0汤圆

发表于 2014-3-18 08:56:04 | 显示全部楼层
强力顶一下楼主

出0入0汤圆

发表于 2014-3-18 08:56:10 | 显示全部楼层
marka 啊啊

出0入0汤圆

发表于 2014-3-18 08:56:26 | 显示全部楼层
现在用不上顶楼主开源

出0入0汤圆

发表于 2014-3-18 09:05:15 | 显示全部楼层
哈哈,顶楼主,谢谢开源~o(∩_∩)o 哈哈

出0入0汤圆

发表于 2014-3-18 09:11:54 | 显示全部楼层
谢谢楼主,正需要呢

出0入0汤圆

发表于 2014-3-18 09:27:18 | 显示全部楼层
thanks a lot, mark

出0入0汤圆

发表于 2014-3-18 09:39:11 | 显示全部楼层
好东西呀,谢谢lz无私分享。测试下比原来的虚拟串口能块多少。

出0入0汤圆

发表于 2014-3-18 09:57:12 | 显示全部楼层
下载了,学习下,谢谢分享!

出0入0汤圆

发表于 2014-3-18 10:04:00 | 显示全部楼层
这个必须支持啊

出0入0汤圆

发表于 2014-3-18 10:11:20 | 显示全部楼层
顶顶                  

出0入0汤圆

发表于 2014-3-18 10:54:15 | 显示全部楼层
刚刚试了可以用

出0入30汤圆

发表于 2014-3-18 10:58:23 | 显示全部楼层
libusb是好东西。顶楼主。

出0入0汤圆

发表于 2014-3-18 11:01:26 | 显示全部楼层
有空学习一下   谢谢了

出0入0汤圆

发表于 2014-3-18 11:06:23 | 显示全部楼层
收下了,多谢楼主.

出0入0汤圆

发表于 2014-3-18 14:00:22 | 显示全部楼层
lz现在发技术帖了啊

出0入0汤圆

发表于 2014-3-18 16:00:17 | 显示全部楼层
顶一下,好东西

出0入0汤圆

发表于 2014-3-18 16:11:15 | 显示全部楼层
下来看看

出0入0汤圆

发表于 2014-3-18 21:41:23 | 显示全部楼层
mark                        

出0入0汤圆

发表于 2014-3-18 21:52:45 | 显示全部楼层
谢谢楼主,我也一直没有调试通,参考下楼主的

出0入0汤圆

发表于 2014-3-18 21:57:12 | 显示全部楼层
应该很牛逼,顶楼主的开源精神,虽然暂时用不到

出0入0汤圆

发表于 2014-3-18 21:57:23 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2014-3-18 22:02:22 | 显示全部楼层
gongxd 发表于 2014-3-18 08:41
上位机为C#的,带源程序,全部开源,驱动使用libusb驱动向导生成,超级方便 ...

兄弟,能分享下是用什么工具生成的libusb驱动吗,谢谢了。

出0入0汤圆

 楼主| 发表于 2014-3-18 22:10:49 | 显示全部楼层
creep 发表于 2014-3-18 22:02
兄弟,能分享下是用什么工具生成的libusb驱动吗,谢谢了。

libusb官网有 很方便
插上usb 然后一直下一步就ok

出0入0汤圆

发表于 2014-3-18 22:12:10 | 显示全部楼层
这个一定要顶一下。

出0入0汤圆

发表于 2014-3-18 22:12:50 | 显示全部楼层
这个一定要顶一下。

出0入0汤圆

发表于 2014-3-18 22:17:27 | 显示全部楼层
标记一下

出0入0汤圆

发表于 2014-3-18 22:41:10 | 显示全部楼层
gongxd 发表于 2014-3-18 22:10
libusb官网有 很方便
插上usb 然后一直下一步就ok

谢谢。是不是里面的http://sourceforge.net/apps/trac/libusb-win32/wiki              “Device Driver Installation”

出0入0汤圆

发表于 2014-3-18 23:06:06 | 显示全部楼层
顶上。。。。

出0入0汤圆

发表于 2014-3-18 23:08:41 | 显示全部楼层
顶一下。。。。。。。。。。

出0入0汤圆

发表于 2014-3-18 23:42:28 来自手机 | 显示全部楼层
绝对顶,高速应用的朋友有福了

出0入0汤圆

发表于 2014-3-19 05:11:20 来自手机 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2014-3-19 14:24:29 | 显示全部楼层
楼主这个牛啊,准备下面自己画个F407的板子,带上USB接口。我现在使用的是官方的VCP程序,在电脑中虚拟一个串口出来,直接操作串口发送数据。你这个高级,搞下来玩玩。

出0入0汤圆

发表于 2014-3-19 14:30:29 | 显示全部楼层
顶,好收藏了

出0入0汤圆

发表于 2014-3-19 14:54:29 | 显示全部楼层
不错,很好,顶LZ

出0入0汤圆

 楼主| 发表于 2014-3-19 15:34:15 | 显示全部楼层
creep 发表于 2014-3-18 22:41
谢谢。是不是里面的http://sourceforge.net/apps/trac/libusb-win32/wiki              “Device Driver  ...



inf-wizard  傻瓜版驱动生成工具

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-3-19 16:10:44 | 显示全部楼层
上位机需要那个版本的netfram啊?
我这里不能运行

出0入0汤圆

发表于 2014-3-19 16:20:10 | 显示全部楼层
gongxd 发表于 2014-3-19 15:34
inf-wizard  傻瓜版驱动生成工具

非常感谢!

出0入0汤圆

发表于 2014-3-19 16:41:09 来自手机 | 显示全部楼层
厉害呀                       

出0入0汤圆

 楼主| 发表于 2014-3-19 20:51:57 | 显示全部楼层
lts 发表于 2014-3-19 16:10
上位机需要那个版本的netfram啊?
我这里不能运行

vs2010的
vs2010的

出0入0汤圆

发表于 2014-3-19 21:23:22 | 显示全部楼层
楼主突然发了个非财经的帖子还真有点不习惯,哈哈

出0入0汤圆

发表于 2014-3-19 23:43:08 | 显示全部楼层
收下,感谢~ 之前项目用的虚拟串口,感觉不怎么方便,试试libusb如何

出0入0汤圆

发表于 2014-3-19 23:56:59 | 显示全部楼层
好东西必须顶

出0入90汤圆

发表于 2014-3-20 00:16:21 来自手机 | 显示全部楼层
真的很不错,收藏了,感谢楼主开源

出0入0汤圆

发表于 2014-3-20 21:39:31 | 显示全部楼层
····为啥我用官方哪个vcp 老出错呢·····回头再好好看看···我哪个vcp的速度140多才···

出50入0汤圆

发表于 2014-3-20 22:00:38 来自手机 | 显示全部楼层
酷!  双缓冲,改日来看!

出0入0汤圆

发表于 2014-3-21 08:44:21 | 显示全部楼层
学习了,双缓冲发送 700K/s

出0入0汤圆

发表于 2014-3-21 08:47:30 | 显示全部楼层
很不错 收藏了

出0入0汤圆

发表于 2014-4-1 16:35:26 | 显示全部楼层
好东西不顶不行啊,最近在做STM32F2.7 USB2.0的高速传输,PHY芯片用的是USB3300,有做过的同志一起切磋切磋。

出0入0汤圆

发表于 2014-4-1 16:46:52 | 显示全部楼层
顶一下。
请问是700K bit/s还是700K Byte/s?

出0入0汤圆

发表于 2014-4-1 16:47:53 | 显示全部楼层
从截图看到是接近700K Byte/s了……

出0入0汤圆

发表于 2014-4-2 15:56:45 | 显示全部楼层
顶                              

出200入0汤圆

发表于 2014-4-2 16:50:04 来自手机 | 显示全部楼层
有空学习

出10入12汤圆

发表于 2014-4-2 17:14:07 | 显示全部楼层
有空学习,

出0入0汤圆

发表于 2014-4-22 10:16:30 | 显示全部楼层
请教楼主一个问题。

我用stm32f4 cdc类改的设备, 每10ms发送176字节数据,  上位机用你发的testbulk的事件接受, 刚开始 时候,

基本每10ms来一次数据,到后来有的间隔了20ms,会丢数据,这个 和驱动效率或者上位机 程序  有关系吧,你的跑久了会出现这个问题么?关了上位机 重新开一下速度就又正常了

刚开始接受的截图:

后来的接收的截图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-22 10:19:37 | 显示全部楼层
刚开始我还以为是下位机程序导致数据丢失,现在看来可能是因为libusb上位机驱动的问题。

出0入0汤圆

发表于 2014-4-22 10:20:54 | 显示全部楼层
mark说不定那天就用到了。

出0入0汤圆

 楼主| 发表于 2014-4-22 20:17:33 | 显示全部楼层
wmrxjhm 发表于 2014-4-22 10:16
请教楼主一个问题。

我用stm32f4 cdc类改的设备, 每10ms发送176字节数据,  上位机用你发的testbulk的事 ...

我跑过一个晚上 没什么问题
libusb有问题的可能性不大
大可能是配合的不好
用那个事件的就会一直读数据

usb下位机一定要被动的发数据  不要主动发数据

出0入0汤圆

发表于 2014-4-22 20:22:25 | 显示全部楼层
楼主问一个问题,STM32如何用程序让USB复位一下?想在运行过程中用程序让USB实现拔插一次的效果,而不用手动拔插USB设备。

出0入0汤圆

 楼主| 发表于 2014-4-22 20:43:03 | 显示全部楼层
hexenzhou 发表于 2014-4-22 20:22
楼主问一个问题,STM32如何用程序让USB复位一下?想在运行过程中用程序让USB实现拔插一次的效果,而不用手 ...

usb的上拉电阻就是复位用的,你用三极管控制上拉的通断就行

出0入0汤圆

发表于 2014-4-22 20:47:28 | 显示全部楼层
看来是要改硬件才能做到了。非常感谢楼主。

出0入0汤圆

发表于 2014-4-22 20:57:31 | 显示全部楼层
试试,多谢了

出0入42汤圆

发表于 2014-4-22 20:58:20 来自手机 | 显示全部楼层
好东西,不顶不行。

出0入0汤圆

发表于 2014-4-22 21:24:10 | 显示全部楼层
好东西,记号。

出0入0汤圆

发表于 2014-4-22 21:59:01 | 显示全部楼层
顶一个!!!!!!!

出0入17汤圆

发表于 2014-4-22 21:59:21 | 显示全部楼层

收下了,多谢楼主.

出0入0汤圆

发表于 2014-4-23 09:18:07 | 显示全部楼层
gongxd 发表于 2014-4-22 20:17
我跑过一个晚上 没什么问题
libusb有问题的可能性不大
大可能是配合的不好

数据量比较大,1ms传176个字节左右的数据,要求实时传输绘制波形。

如果 加一个握手 确保时间,这个时间肯定保证不了,缓冲满了,就会丢了。

出0入0汤圆

发表于 2014-4-23 09:41:34 | 显示全部楼层
MARK 这个是不错的了哦

出0入0汤圆

发表于 2014-4-23 10:37:28 | 显示全部楼层
你是怎么加确认机制的? 用 中断端点么

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-23 12:28:13 | 显示全部楼层
可惜你的这个不能用,407和103 差的比较多。。

我直接 把发送 发到  datain 中断里去  还是会出错数据。哎

出0入0汤圆

发表于 2014-4-26 10:13:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-4-27 18:24:25 | 显示全部楼层
谢谢楼主共享!

出0入0汤圆

发表于 2014-4-27 18:32:03 | 显示全部楼层
赞一个,谢谢

出0入0汤圆

发表于 2014-4-27 21:22:10 | 显示全部楼层
路过路过赞下吧   我表示 这个不会

出0入0汤圆

发表于 2014-4-27 21:23:29 | 显示全部楼层
楼主真是好人啊

出0入0汤圆

发表于 2014-5-22 22:33:24 | 显示全部楼层
怎么删了?

出0入17汤圆

发表于 2014-5-22 22:47:42 | 显示全部楼层
怎么删了?我们来晚了

出0入0汤圆

发表于 2014-5-23 13:21:52 | 显示全部楼层
谢谢共享

出130入129汤圆

发表于 2014-6-24 23:04:34 | 显示全部楼层
多谢空哥,很多人的BULK例子要RMB的

出0入76汤圆

发表于 2014-6-24 23:10:06 | 显示全部楼层
不错, 感觉空哥分享,USB后续要用到,先收藏, 另外正好玩的是C#..., 也可以用LabVIEW快速构建..

出0入9汤圆

发表于 2014-6-25 11:40:26 | 显示全部楼层
谢谢楼主共享!

出0入0汤圆

发表于 2014-6-25 15:11:04 | 显示全部楼层
学习!谢谢

出0入0汤圆

发表于 2014-6-25 15:13:06 | 显示全部楼层
赶紧下载   谢谢 楼主

出0入0汤圆

发表于 2014-6-25 21:34:34 | 显示全部楼层
谢谢楼主开源

出0入0汤圆

发表于 2014-6-26 00:24:06 来自手机 | 显示全部楼层
mark了。感谢。。。。

出130入129汤圆

发表于 2014-6-26 14:46:42 | 显示全部楼层
本帖最后由 68336016 于 2014-6-26 14:48 编辑

特地认真试验了这个BULK代码,发现一些问题,当然我的理解不一定准确。
我是在EP1_IN_Callback(void)里进行计数,在自己板子液晶屏计算速度。
系统WIN7 X64位

问题1.BUS HOUND的速度没什么可信度,看速度几百KB/S,但是看接收到的数据每秒增长其实没有那么快。

问题2.用LZ提供的双缓冲IN发送或者单缓冲IN发送到PC,自己板子LCD显示发送速度都是一样,所以LZ双缓冲IN发送代码是否正确呢?因为都说双缓冲IN比较复杂,不止那几行代码。

问题3.LZ的C#上位机在WIN7 X64上有一个BUG,会越跑越慢 ,从400KB/S慢慢掉到0,可能系统兼容的原因吧。

出0入0汤圆

 楼主| 发表于 2014-6-26 15:10:08 | 显示全部楼层
68336016 发表于 2014-6-26 14:46
特地认真试验了这个BULK代码,发现一些问题,当然我的理解不一定准确。
我是在EP1_IN_Callback(void)里进行 ...

网上都说双缓冲没这么简单  不过我测试没问题  其实最关键的就是初始化那个地方
关于数据正确不正确 你看看上传的数据 用winhex 看即可
其中一个变量自加  我翻着看的 没挨个看 不过没找到问题

你的程序如果有液晶显示可能会拖慢系统速度

驱动没在win7上实验  下载个最新的libusb可能会解决
在xp上跑了一晚上没什么问题

出0入0汤圆

发表于 2014-7-26 10:01:08 | 显示全部楼层
gongxd 发表于 2014-6-26 15:10
网上都说双缓冲没这么简单  不过我测试没问题  其实最关键的就是初始化那个地方
关于数据正确不正确 你看 ...

用楼主的例子下载到板子上,插上usb电脑端 无任何反应哦,
已经修改了USB_DISCONNECT和USB_DISCONNECT_PIN 对应的引脚,还需要修改什么地方呢?
先装上驱动也还是没反应,用win7 64位系统,其他的stm32的usb例子是可以运行的
哪里还需要修改呢?

出0入0汤圆

发表于 2014-7-26 13:38:09 | 显示全部楼层
这个厉害!

出0入0汤圆

发表于 2014-7-31 15:08:26 | 显示全部楼层
参考了,O(∩_∩)O谢谢

出0入0汤圆

发表于 2014-7-31 15:18:14 | 显示全部楼层
支持一个。

出0入0汤圆

发表于 2014-7-31 15:41:21 | 显示全部楼层
这个要顶

出0入17汤圆

发表于 2014-8-1 20:35:01 | 显示全部楼层

参考了,O(∩_∩)O谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-22 04:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表