搜索
bottom↓
回复: 12

CUBEMX 生成的STM32F103虚拟串口程序发送数据10KB/s很容易busy

[复制链接]

出0入8汤圆

发表于 2019-12-12 09:47:21 | 显示全部楼层 |阅读模式
如题, 用cube生成的虚拟串口程序,使用CDC_Transmit_FS 函数定时发送数据, 经常返回   USBD_BUSY

也就是10KB/S  照理说也不是很快啊。  串口都比这快。

网上有说是上位机接收处理速度不够, 但是我用第三方的串口助手和自己c#写的串口跑起来都容易返回busy,似乎又和这个没关系

接触USB不太多, 熟悉的朋友给点意见。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-12-12 10:02:09 | 显示全部楼层
全速USB,CDC速度700K左右,可能是MCU数据处理耗时过多。

出0入8汤圆

 楼主| 发表于 2019-12-12 10:07:05 | 显示全部楼层
styleno1 发表于 2019-12-12 10:02
全速USB,CDC速度700K左右,可能是MCU数据处理耗时过多。

你说的是700K字节么,

我CPU 也没干啥,就是1MS的系统中断, 还有一个2ms左右的定时器中断

出0入0汤圆

发表于 2019-12-12 10:37:00 | 显示全部楼层
程序逻辑是返回busy就不传了么。 有没有busy多久超时 否则一直等待的逻辑。

出0入8汤圆

 楼主| 发表于 2019-12-12 10:38:28 | 显示全部楼层
xuboluan 发表于 2019-12-12 10:37
程序逻辑是返回busy就不传了么。 有没有busy多久超时 否则一直等待的逻辑。

暂时没那样弄, 主要是现在数据量根本就不大,搞不懂为什么那么容易就busy
串口轻轻松松跑400K 一点问题都没有

出590入992汤圆

发表于 2019-12-12 10:41:51 | 显示全部楼层
我之前测试的,好像有500-800KB呢,你这是生成的哪里有问题吧

出0入8汤圆

 楼主| 发表于 2019-12-12 11:24:07 | 显示全部楼层
SUPER_CRJ 发表于 2019-12-12 10:41
我之前测试的,好像有500-800KB呢,你这是生成的哪里有问题吧


都是标准操作啊  没什么特别的地方啊

你用是cube  然后F103么?

出0入0汤圆

发表于 2019-12-12 11:51:41 | 显示全部楼层
你的usb口使用哪个,是不是带了鼠标键盘的hub,这样的话,速度有可能上不去

出0入8汤圆

 楼主| 发表于 2019-12-12 12:41:01 | 显示全部楼层
xiaomu 发表于 2019-12-12 11:51
你的usb口使用哪个,是不是带了鼠标键盘的hub,这样的话,速度有可能上不去

直接插电脑背面也一样

出0入0汤圆

发表于 2019-12-12 12:53:04 | 显示全部楼层
justdomyself 发表于 2019-12-12 12:41
直接插电脑背面也一样

HAL库就是这样,我现在都妥协了,加上超时就完事了。反正瞎走线,不加匹配,CDC 500K速度保底是有的。

出615入1076汤圆

发表于 2019-12-12 13:09:21 来自手机 | 显示全部楼层
本帖最后由 dukelec 于 2019-12-12 13:13 编辑

1.5 年前,我用 cube 在 103 上弄 CDC 虛擬串口,不穩定,但發現換 105 就沒問題,為了省事我就換芯片了。

前兩個禮拜,我另一個 103 的一個工程,升級 cube 版本后,SPI DMA 通訊不穩定了,之前老工程非常穩定,懒的查,關 DMA 了事。

之前用 cube 已經查出很多 bug,現在心累了。。。

出190入0汤圆

发表于 2019-12-12 13:43:12 | 显示全部楼层
话说,有用libopencm3库的么?

出0入8汤圆

 楼主| 发表于 2019-12-12 17:32:24 | 显示全部楼层
xuboluan 发表于 2019-12-12 12:53
HAL库就是这样,我现在都妥协了,加上超时就完事了。反正瞎走线,不加匹配,CDC 500K速度保底是有的。 ...

加上发送失败重新发送,也没什么效果,

     unsigned char ret = 0;
        unsigned char retry = 0;
        
        do
        {
          if( ++retry>1)
          {
              osDelay(5);//系统延时5MS
          }
         
          ret = CDC_Transmit_FS(buf, index);
         
        }
        while(ret!=0 && retry <= 3);
         
        retry = 0;


回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 00:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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