C++ 测试USB 串口速率

22 篇文章 6 订阅

想测试STM32F429 和linux USB 串口速率,网上讲了各种软件好像都不能用,wireshark 的USB cap 也不管用,干脆自己写一个程序来测吧!

 关于测试程序执行时间的方法在测试串口时也不管用(clock,time 等等),需要使用一个线程来测:

#include "serialPort.hpp"
#include <pthread.h>
#include <iostream>
char buff[512];
long counter;
const char *dev  = "/dev/ttyS36";
void * time_task(void * arg) {
  while (true)
  { 
  cout<<"baud rate:"<<counter*8/1024.0<<"Kbps"<<endl;
  counter=0;
  sleep(1);
  }
   return 0;
}
int main()
{ 
   pthread_t threadId;
    pthread_create(&threadId, NULL, &time_task, NULL);
serialPort myserial;
int i,nread,nwrite;
  cout<<"serialPort Test"<<endl;
  myserial.OpenPort(dev);
  myserial.set_speed(115200);
  myserial.set_Parity(8,1,'N');
  counter=0;
  while (true)
  {
//	  nwrite = myserial.writeBuffer( buff, 8);
  nread = myserial.readBuffer( buff, 512);  
  counter=counter+nread;
 
  }
}

serialPort 是自己写的一个类,在我前面的博文中有介绍。需要的可以私信。

stm32 上的 mbed 程序

/*
 * Copyright (c) 2006-2020 Arm Limited and affiliates.
 * SPDX-License-Identifier: Apache-2.0
 */
#include "mbed.h"
#include "USBCDC.h"

USBCDC cdc;

int main(void)
{
        uint8_t buf[512];
        for (int i=0;i<512;i++)
          buf[i]=0x30;
          buf[510]=0x0d;
          buf[511]=0x0a;
    while (1) {
     
        cdc.send(buf, 512);
        ThisThread::sleep_for(1);
    }
}

实际测试的结果为

就这样吧,大约4Mbps.块长大一点,速率高许多.

      如果要进一步提高USB 的速率,要选择USB 2.0 HS 模式。需要外接USB HS phy ,比如USB3300 ,目前STM32F7x3 和 STM32F730.支持内置的USB HS phy。 mbed OS 目前不支持 USB HS

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C USB口的读写速率测试是用来衡量C USB口在数据传输过程中的速度USB(通用串行总线)是一种在计算机和外部设备之间传输数据的标准接口。C USBUSB的第三个主要版本,它在传输速度和功率管理方面有显著的改进。 进行C USB口读写速率测试可以通过连接一个可测量读写速度的设备,例如闪存驱动器或硬盘驱动器。在测试过程中,使用一定量的数据进行读写操作,并记录完成这些操作所需的时间。 收集的数据可以用来计算C USB口的读取速率和写入速率。读取速率是指从设备中读取数据的速度,写入速率是指将数据写入设备的速度。通常以每秒钟传输的数据量来表示。 测试结果可能会受到多种因素的影响,包括设备本身的性能、使用的数据传输协议、连接的USB端口类型等。因此,进行多次测试并取平均值可以得到更准确的结果。 可以使用各种工具和软件来进行C USB口读写速率测试,比如CrystalDiskMark、HD Tune等。这些工具提供了简单易用的界面,可以帮助用户进行测试,并显示测试结果。 基于测试结果,可以了解C USB口的性能以及其在数据传输中的表现。如果读写速率达到或接近C USB口的理论极限,即说明C USB口的性能非常出色。但如果读写速率远低于理论极限,则可能表明存在性能瓶颈,可能需要进行进一步的故障排除或升级硬件设备。 总之,C USB口的读写速率测试是评估C USB口性能的重要手段,可以帮助用户了解C USB口在数据传输中的表现和潜在的性能问题。 ### 回答2: C USB口的读写速率是指通过C USB口传输数据的速度。通过进行读写速率测试,我们可以评估C USB口在实际使用中的性能表现。 在进行读写速率测试之前,我们需要一台支持C USB接口的设备,并在设备中连接一个具有高速传输能力的存储设备,如USB 3.0闪存盘。同时,我们还需要一款专业的测试工具,如CrystalDiskMark或者ATTO Disk Benchmark。 首先,我们将C USB接口与存储设备相连接,并确保设备正常工作。然后,我们打开测试工具,并选择相应的存储设备进行测试。在测试过程中,工具会自动进行一系列的读写操作,并记录下每个操作的传输速度。 完成测试后,我们可以得到C USB口的读写速率结果。这些结果通常以每秒传输的数据量来表示,如以MB/s或GB/s为单位。这些结果可以帮助我们了解C USB口的性能,并对其在实际使用中的数据传输能力有更清晰的认识。 需要注意的是,C USB口的读写速率受到多个因素的影响,包括设备本身的性能、传输的数据类型以及连接线和驱动程序的质量等。所以,在进行测试时,我们应该尽量保持测试环境的稳定,并与其他设备的性能进行对比,以更准确地评估C USB口的性能。 总之,通过进行C USB口的读写速率测试,我们可以了解到其在实际使用中的传输能力,并为我们的数据传输提供参考依据。 ### 回答3: c USB口读写速率测试是对计算机上的USB接口的数据传输速度进行测量的过程。通过这个测试,我们可以了解USB接口的性能和传输效率。通常,USB接口的读写速率是指数据从计算机存储设备(如硬盘、固态硬盘、U盘等)传输到USB设备(如手机、相机、外部硬盘等)或从USB设备传输到计算机存储设备的速度测试USB口的读写速率有多种方法,常见的有以下几种: 1. 使用第三方软件进行测试:可以使用一些专门的测试软件,例如CrystalDiskMark、HD Tune等,在测试前,需要将计算机与USB设备连接,然后选择相应的测试选项进行测试测试结果将显示出USB接口的读写速率。 2. 复制大文件进行测试:通过复制一个较大的文件(如几个GB的电影文件)来测试USB口的读写速率。通过观察文件复制的用时,即可得到USB口的读写速率。 3. 使用设备管理器进行测试:在Windows系统中,可以打开设备管理器,找到并右键点击USB控制器,选择"属性",在"详细信息"中找到对应的"速度"属性,即可查看USB口的传输速度。请注意,这里显示的是理论速度,实际速度会受到多种因素的影响。 需要注意的是,USB接口的读写速率还受到其他因素的影响,如USB设备本身的性能、计算机硬件配置、USB接口的版本等。因此,测试结果仅供参考,实际使用中可能会略有差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值