你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何提高官方VCP例程的数据包大小

[复制链接]
szd00025 提问时间:2024-2-27 09:06 / 已解决

我使用 STM32H750官方的VCP例程,FS模式。

程序默认CDC_DATA_FS_MAX_PACKET_SIZE是64位,我试着修改最大只能到256,如果再大会导致接收不到数据。芯片资料MPSIZ设置范围可以到2047。

我想提高数据包大小应该怎么修改

收藏 评论4 发布时间:2024-2-27 09:06

举报

4个回答
xmshao 最优答案 回答时间:2024-2-27 10:45:06
你说根据芯片资料里相关寄存器MPSIZ字段定义,范围可以到2047,该字段共11位,数字上讲没错。但是,它是针对芯片USB端点所支持数据包长的泛泛定义,具


体数据还要结合USB的速度模式和端点传输模式。


对于FS模式批量传输端点,这里最大仅支持到64,即一个数据包的最大数据载荷为64字节。如果需要传输更多的数据就需要进行多包传输,或说多次Transaction。


所以你这里不用改例程的这个地方,这个64此时应该是固定的。


你要做的是根据可能的一次性数据传输量修改你的接收缓冲大小,然后在接收处理函数里根据每次的接收数据是一整包还是非整包来进行处理。如果是整包,就


继续往下接收,如果收到非整包数据或0字节数据则视为此次接收完成。当然,这里的整包数据就是64字节长度的数据包。这些可能都需要你自行处理。
butterflyspring 回答时间:2024-2-27 09:56:26

在USB2.0标准下,full speed USB bulk 端点最大包长就是64 byte(不能改)。 但是transfer 的大小可以不限(主要看应用层缓存大小,所以应该改此处)

qiangtech 回答时间:2024-2-27 09:23:28

我也有这样的问题,我用的芯片是072,只能在64,改大就不能运行了。来个专家解答一下,USB FS能不能改大包,如果能改,需要同时改动哪些参数使它运行正常?

背影101 回答时间:2024-3-6 08:19:11
[md]

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版