OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4878|回复: 18

STM32F4 USB虚拟串口多发送\0

[复制链接]

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
发表于 2019-5-20 13:14:41 | 显示全部楼层 |阅读模式
3金钱
各位,小弟最近一个项目需要使用和上位机传5M左右的数据,之前用的CH340太慢了!
我想到了USB虚拟串口,因为我对USB协议不熟,也没有时间去研究,所以直接在网上找了示例代码。

现在遇到的问题为:
USB虚拟串口发送完成后,会多发送一些\0,如图:

111.png

发送了u8 dat[12] = {"Hello world"};之后,串口多发送了两个0x00,发送的0x00多少随着单次发送字节长度变化。当发送不定长的数据时,0x00会变多

问题如下:

1、有没有遇到过这个问题,这是STM虚拟USB的通病吗?还是我的示例代码有问题
2、虽然我也可以加0xFF之类的作为数据包的结尾,或者增加其他的校验,但是会和之间老版本的设备无法兼容。各位有没有什么对策?
3、如果是我的示例代码有问题,还请发送一份代码给我,小弟不胜感激。


最佳答案

查看完整内容[请看2#楼]

您确定您的线路和这个专案有对起来吗? 如果您是用STM32上面的USB FS的DM DP接出来的USB port是不可用的. 要用STM32F405RG->USB3300->USB Port, 接线还有时钟配置我应该在目录里面有放, 可以用CubeMX打开来对照. 如果不同,需要依照原理图做修改. 驱动不需要用什么特别的, Windows 10自带, Windows 7可以用ST网站下载.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2019-5-20 13:14:42 | 显示全部楼层
oxygensun 发表于 2019-5-31 10:48
非常感谢您发送来的代码,但是这份代码在我这里出现了绝大部分示例代码出现的问题:运行之后提示了“未知 ...

您确定您的线路和这个专案有对起来吗?
如果您是用STM32上面的USB FS的DM DP接出来的USB port是不可用的.

要用STM32F405RG->USB3300->USB Port, 接线还有时钟配置我应该在目录里面有放, 可以用CubeMX打开来对照. 如果不同,需要依照原理图做修改.

驱动不需要用什么特别的, Windows 10自带, Windows 7可以用ST网站下载.
回复

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-28
在线时间
5 小时
发表于 2019-5-20 13:59:33 | 显示全部楼层
帮忙顶一顶
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2019-5-20 22:55:37 | 显示全部楼层
没有多发送的问题过.
UART倒是有可能某一边错过收封包时机造成资料不见.
装BusHound观察传输的封包, 比对送出来的东西有没有正确.
VCP送资料出来, 可以指定要送多少, 我看不出来您怎么送, 所以没法说什么.
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-5-21 02:17:50 | 显示全部楼层
USB FS如果你用虚拟串口,也到不了5M的。  你是大B还是小b
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-23 21:20:39 | 显示全部楼层
sammy902583 发表于 2019-5-20 22:55
没有多发送的问题过.
UART倒是有可能某一边错过收封包时机造成资料不见.
装BusHound观察传输的封包, 比对 ...

请问您那边有没有可用的虚拟USB串口示例代码,能分享一份?
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-23 21:21:26 | 显示全部楼层
正点原子 发表于 2019-5-21 02:17
USB FS如果你用虚拟串口,也到不了5M的。  你是大B还是小b

大概是5M字节吧,分包传,所以每个包会有多出来的\0\0\0\0\0\0
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-5-24 02:41:11 | 显示全部楼层
oxygensun 发表于 2019-5-23 21:21
大概是5M字节吧,分包传,所以每个包会有多出来的\0\0\0\0\0\0

USB HS才能满足你的要求,USB FS没戏
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-24 12:09:34 | 显示全部楼层
正点原子 发表于 2019-5-24 02:41
USB HS才能满足你的要求,USB FS没戏

为什么?我分包,每个包分成128字节,多分几个包总是可以的吧?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-5-25 03:11:39 | 显示全部楼层
oxygensun 发表于 2019-5-24 12:09
为什么?我分包,每个包分成128字节,多分几个包总是可以的吧?

你要的是速度,不是大小
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-25 12:54:18 | 显示全部楼层
正点原子 发表于 2019-5-25 03:11
你要的是速度,不是大小

但是横竖比115200强啊。

无论怎样,大人有没有HS的示例代码,给一份撒。。。。。。
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2019-5-25 14:52:00 | 显示全部楼层
oxygensun 发表于 2019-5-25 12:54
但是横竖比115200强啊。

无论怎样,大人有没有HS的示例代码,给一份撒。。。。。。

ST的库里面都有范例, 您可以自己去找.
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-25 17:50:36 | 显示全部楼层
sammy902583 发表于 2019-5-25 14:52
ST的库里面都有范例, 您可以自己去找.

谢谢您的提议,但是这个提议和“您可以自己去百度”其实是一样的。
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2019-5-25 21:34:28 | 显示全部楼层
本帖最后由 sammy902583 于 2019-5-25 21:36 编辑

您要HS的范例, 我可以上传, 这个是用F405RG + USB3300的, 作用是Loopback, 希望有代码问题就解决了, 加油.

14_F405RG_UsbHs.zip

24.31 MB, 下载次数: 71

回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-26 11:14:24 | 显示全部楼层
sammy902583 发表于 2019-5-25 21:34
您要HS的范例, 我可以上传, 这个是用F405RG + USB3300的, 作用是Loopback, 希望有代码问题就解决了, 加油.
...

谢谢!我试一下,不胜感激。
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2019-5-26 18:31:31 来自手机 | 显示全部楼层
直接用网口,又快又稳定,省事,ST的USB就是个坑,快了没戏,低于1M还不如串口开到(921600),要稳定快速同样要有外部芯片,速度永远比不了网口,远程就更不用说了,想无线那是做梦,还不如网口开个WIFI实在
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2019-5-26 18:33:18 来自手机 | 显示全部楼层
嵌入式的USB基本是用来快速,便捷通讯用的,其它的不沾
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-30 11:24:54 | 显示全部楼层
wlq390934605 发表于 2019-5-26 18:33
嵌入式的USB基本是用来快速,便捷通讯用的,其它的不沾

快速,便捷通讯是指什么???不是用来传数据的吗?
回复

使用道具 举报

10

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2019-1-12
在线时间
22 小时
 楼主| 发表于 2019-5-31 10:48:49 | 显示全部楼层
sammy902583 发表于 2019-5-25 21:34
您要HS的范例, 我可以上传, 这个是用F405RG + USB3300的, 作用是Loopback, 希望有代码问题就解决了, 加油.
...

非常感谢您发送来的代码,但是这份代码在我这里出现了绝大部分示例代码出现的问题:运行之后提示了“未知USB设备”,如下图:
666.jpg

我确信这份代码是经过您的测试并且能用的,所以我也尝试的找了一些驱动来进行安装,也尝试修改了#define USBD_VID 但是均没有解决问题。

我的疑惑是:
按照道理来讲STM的USB驱动应该是统一的,为什么会出现这种情况。

请问您能不能给我一份驱动。

我刚刚从飞思卡尔平台转到STM平台,很多东西还不太了解,如有浅薄之处,请见谅。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-14 19:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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