搜索

[STM32 H7] STM32H7 USB 如何 CDC 一次发送36KByte数据

[复制链接]
2802|5
手机看帖
扫描二维码
随时随地手机跟帖
xiaofei558008|  楼主 | 2021-7-9 11:52 | 显示全部楼层 |阅读模式
STM32H7 全速USB 如何用 CDC usb 虚拟串口 一次发送36KByte数据呢?

看了网上说明,貌似一次只能发送64字节?也有看到可以跑到800KB/s;

uint8_t CDC_Transmit_HS(uint8_t* Buf, uint16_t Len)
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)


这两个函数可以吗?
小白第一次调USB,求大侠不吝赐教呀~~








使用特权

评论回复
小叶三千| | 2021-7-9 17:05 | 显示全部楼层
USB的HID协议是一次64Byte,处理速度快啊,传一些文件没问题的。不过CDC没用过,帮顶!

使用特权

评论回复
xiaofei558008|  楼主 | 2021-7-9 17:57 | 显示全部楼层
本帖最后由 xiaofei558008 于 2021-7-10 15:16 编辑
小叶三千 发表于 2021-7-9 17:05
USB的HID协议是一次64Byte,处理速度快啊,传一些文件没问题的。不过CDC没用过,帮顶! ...

CDC 好像是64/512一次。我i这边传一段(1-2K左右就卡死,返回 USBD_BUSY)

使用特权

评论回复
香水城| | 2021-7-9 19:14 | 显示全部楼层
对于FS模式下的CDC传输,当数据大于64Bytes,会进行多包传输来完成。

你检查下你堆、FIFO这些配置。

使用特权

评论回复
xiaofei558008|  楼主 | 2021-7-10 15:06 | 显示全部楼层
香水城 发表于 2021-7-9 19:14
对于FS模式下的CDC传输,当数据大于64Bytes,会进行多包传输来完成。

你检查下你堆、FIFO这些配置。 ...

谢谢香主回复;
目前cube都用静态库了,因此不需要堆的配置,64字节试过,一直传64字节传2k左右也会变忙的状态,fifo还没检查,H7 FS 和 HS还没搞明白是否有区别,用的是内置的phy。

使用特权

评论回复
xiaofei558008|  楼主 | 2021-7-12 16:58 | 显示全部楼层
自问自答一下:
cubeMx生成的代码HS和FS比较混乱(内置PHY全是FS,但代码里都是HS),因此从网上下了个F746 FS的例子;自己移植了一下搞定了; STM32F746 Discovery VCP-FS.rar (951.89 KB, 下载次数: 6)

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 火星国务卿 得到打赏 ¥383.00
  • 2 呐咯密密 得到打赏 ¥365.00
  • 3 kk的回忆 得到打赏 ¥360.01
  • 4 Gavin3389 得到打赏 ¥301.00
  • 5 jinglixixi 得到打赏 ¥220.00
  • 6 小叶三千 得到打赏 ¥200.00
  • 7 神圣雅诗人 得到打赏 ¥200.00
  • 8 qjp1988113 得到打赏 ¥106.00
  • 9 linghz 得到打赏 ¥100.00
  • 10 xyz549040622 得到打赏 ¥100.00
在线客服 快速回复 返回顶部 返回列表