打印
[STM32F4]

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

[复制链接]
楼主: 碧云天书
手机看帖
扫描二维码
随时随地手机跟帖
361
碧云天书|  楼主 | 2019-4-11 22:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
xiaoxiao0932 发表于 2019-4-2 13:36
@碧云天书  楼主,我在使用时遇到很大的问题,从flash中读取数据发送到上位机,
循环读取组成数据包,USB发 ...

如果你的数据长度超过了一次传输的最大长度,USB库函数会自动拆分传输。你只需要把数据缓冲区交给库函数USBD_CDC_SetTxBuffer就行了,用不着自己拆分。
HAL库早期的时候有64字节传输错误,请你参考《USB CDC类开发时,无法发送64整数倍的数据(续)》https://bbs.21ic.com/icview-1708972-1-1.html,看看是不是这个问题。简单的规避方法就是在传输的时候,不要按64的整数倍传输。

使用特权

评论回复
362
碧云天书|  楼主 | 2019-4-11 22:55 | 只看该作者
勿灬忘 发表于 2019-4-10 11:52
为什么我烧录到板子里是无法识别的设备啊!萌新一枚,有大佬指教一下么?我用的芯片是f405VET6。
...

我没有在F405上试验过。建议你换成F407芯片,先试一下,然后再移植到F405上。

使用特权

评论回复
363
海中水| | 2019-4-19 17:06 | 只看该作者
不错!

使用特权

评论回复
364
mnh12232| | 2019-4-21 18:45 | 只看该作者
USB-HAL库标记!

使用特权

评论回复
365
勿灬忘| | 2019-4-22 09:58 | 只看该作者
本帖最后由 勿灬忘 于 2019-4-22 10:35 编辑
碧云天书 发表于 2019-4-11 22:55
我没有在F405上试验过。建议你换成F407芯片,先试一下,然后再移植到F405上。 ...

后来我换成407的了,还是识别unknown设备,我百度查了一下,说是枚举过程失败了。就再debug看了一下,走的是告诉模式,程序默认的就是高速模式么?但是我看你们测得都是全速呀!是还要设置什么东西?谢谢大佬指教,我才开始学习这个,好多东西都看不太懂,麻烦了!我烧录之后是这样的,不应该是多一个com口出来么? 还有调试的时候一直是高速模式,不是我想的全速,要怎么修改啊,文档里好像没看到额。。

使用特权

评论回复
366
勿灬忘| | 2019-4-22 10:31 | 只看该作者
本帖最后由 勿灬忘 于 2019-4-22 10:36 编辑

这是debug的过程,只走了高速模式的部分。

使用特权

评论回复
367
碧云天书|  楼主 | 2019-4-24 10:11 | 只看该作者
勿灬忘 发表于 2019-4-22 10:31
这是debug的过程,只走了高速模式的部分。

这是条件编译。在项目设置中定义了USE_USB_HS,就会编译成高速模式。这时候,你的开发板上需要有USB3300这种USB PHY。如果没有,就要删除项目设置中的USE_USB_HS定义。

使用特权

评论回复
368
碧云天书|  楼主 | 2019-4-24 10:13 | 只看该作者
勿灬忘 发表于 2019-4-22 09:58
后来我换成407的了,还是识别unknown设备,我百度查了一下,说是枚举过程失败了。就再debug看了一下,走的 ...


枚举成功,会在串口树上多一个设备,而不是在USB设备树上。
你可以用USBlyzer软件看枚举过程。

使用特权

评论回复
369
海中水| | 2019-4-24 14:04 | 只看该作者
不错!支持一下。

使用特权

评论回复
370
chenlmm| | 2019-5-31 22:43 | 只看该作者
我是新手,还才开始usb开发,能得到楼主的好帖,先赞一下

使用特权

评论回复
371
chenlmm| | 2019-6-5 12:26 | 只看该作者
@楼主。我是刚学习usb开发,打开你的例程,看到pc串口设置是:DCB dcb; GetCommState(hCom, &dcb);
        dcb.BaudRate = 115200;                                                //波特率为115200
        dcb.ByteSize = 8;                                                        //每个字节有8位
        dcb.Parity = NOPARITY;                                                //无奇偶校验位
        dcb.StopBits = ONESTOPBIT;                                        //1个停止位
        SetCommState(hCom, &dcb);
但例程中显示的速度是:*****kB/s,这不是与上面的设置dcb.BaudRate = 115200;        冲突的?显示的速度是:*****kB/s是如何得来的,望指教,谢谢。

522185cf742e0b4cd4.png (490.23 KB )

522185cf742e0b4cd4.png

使用特权

评论回复
372
碧云天书|  楼主 | 2019-6-25 20:33 | 只看该作者
chenlmm 发表于 2019-6-5 12:26
@楼主。我是刚学习usb开发,打开你的例程,看到pc串口设置是:DCB dcb; GetCommState(hCom, &dcb);
        dcb.Ba ...

在USB虚拟串口中,波特率是没有用的,USB会以最快速度传输

使用特权

评论回复
373
zhuotuzi| | 2019-6-26 00:18 | 只看该作者
这么热门,看看。

使用特权

评论回复
374
wewrwe| | 2019-7-3 14:54 | 只看该作者
感谢楼主的代码 刚好最近用到了 解决了困扰我好多天的问题

使用特权

评论回复
375
18827510000| | 2019-8-5 08:49 | 只看该作者
楼主好贴,但为什么下载下来的没法解压啊?

使用特权

评论回复
376
xixi2017| | 2019-8-8 12:37 | 只看该作者
本帖最后由 xixi2017 于 2019-8-8 12:39 编辑

历害了

使用特权

评论回复
377
xixi2017| | 2019-8-11 13:15 | 只看该作者
感谢分享

使用特权

评论回复
378
yuhuitingde2| | 2019-9-25 16:21 | 只看该作者
为什么我下载下来解压不了呢

使用特权

评论回复
379
yuhuitingde2| | 2019-9-25 18:14 | 只看该作者
下载解压不了

使用特权

评论回复
380
碧云天书|  楼主 | 2019-10-20 19:38 | 只看该作者
yuhuitingde2 发表于 2019-9-25 16:21
为什么我下载下来解压不了呢

可能是网站临时故障,请换个时间重新下载

使用特权

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

本版积分规则