有关于STM32F407-USB CDC虚拟串口速度问题!

2019-12-11 18:28发布

本帖最后由 fenjinzhe 于 2013-4-11 01:15 编辑

  之前做过了HID程序传输一个12K的文件需要6秒多钟,不知道怎么这么慢,所以改为CDC类,据说速度还可以。

参考了ST官方例程VCP移植,发送和接收都很正常,今天用BusHound软件测试了一下速度,结果很惊讶。

看图
一开始速度在300+K/sec觉得挺正常。可是后来速度不停的上涨
QQ截图20130410235914.jpg (15.99 KB, 下载次数: 4) 下载附件 2013-4-11 01:07 上传


主循环内只有一句 USB_DataTx(&Buff[0], 64);
  1. #define USBD_CFG_MAX_NUM                1
  2. #define USBD_ITF_MAX_NUM                1

  3. #define USBD_SELF_POWERED               

  4. #define USB_MAX_STR_DESC_SIZ            65535



  5. /** @defgroup USB_VCP_Class_Layer_Parameter
  6.   * @{
  7.   */
  8. #define CDC_IN_EP                       0x81  /* EP1 for data IN */
  9. #define CDC_OUT_EP                      0x01  /* EP1 for data OUT */
  10. #define CDC_CMD_EP                      0x82  /* EP2 for CDC commands */

  11. /* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */
  12. #ifdef USE_USB_OTG_HS
  13. #define CDC_DATA_MAX_PACKET_SIZE       512  /* Endpoint IN & OUT Packet size */
  14. #define CDC_CMD_PACKET_SZE             8    /* Control Endpoint Packet size */

  15. #define CDC_IN_FRAME_INTERVAL          40   /* Number of micro-frames between IN transfers */
  16. #define APP_RX_DATA_SIZE               2048 /* Total size of IN buffer:
  17.                                                 APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL*8 */
  18. #else
  19. #define CDC_DATA_MAX_PACKET_SIZE       64   /* Endpoint IN & OUT Packet size */
  20. #define CDC_CMD_PACKET_SZE             8    /* Control Endpoint Packet size */

  21. #define CDC_IN_FRAME_INTERVAL          5    /* Number of frames between IN transfers */
  22. #define APP_RX_DATA_SIZE               2048 /* Total size of IN buffer:
  23.                                                 APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL */
  24. #endif /* USE_USB_OTG_HS */
复制代码
  1. #ifdef USB_OTG_FS_CORE
  2. #define RX_FIFO_FS_SIZE                          128
  3. #define TX0_FIFO_FS_SIZE                          64
  4. #define TX1_FIFO_FS_SIZE                         128
  5. #define TX2_FIFO_FS_SIZE                          0
  6. #define TX3_FIFO_FS_SIZE                          0
复制代码请问我这正常吗,高手解答下呗!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
evilchips
1楼-- · 2019-12-13 01:42
楼主是用外接高速的PHY吗,不然怎么可能呢
fenjinzhe
2楼-- · 2019-12-13 05:14
没有PHY  只是单片机引脚串22R电阻接入USB
ck32
3楼-- · 2019-12-13 08:09
我最近在座F4的USB传输这块。感觉VCP和HID的传输速度不够快。能不能把您的CDC的例程 给我一份。最好有上位机。万分感谢。邮箱:longjun2011@126.com
zxl_Brant
4楼-- · 2019-12-13 11:16
ck32 发表于 2013-9-15 18:45
我最近在座F4的USB传输这块。感觉VCP和HID的传输速度不够快。能不能把您的CDC的例程 给我一份。最好有上位 ...

哥们,你收到例程了嘛?
kuailesyj
5楼-- · 2019-12-13 14:25
 精彩回答 2  元偷偷看……
fenjinzhe
6楼-- · 2019-12-13 18:00
kuailesyj 发表于 2014-1-7 10:53
楼主  有没有发现用bus hound监控usb速度时显示的速度好快啊  完全不符合实际

是啊,至今没弄明白怎么回事!

一周热门 更多>