arduino - 最大化 Arduino Nano 33 BLE Sense 的 Serial.write() 数据传输速度
问题描述
如果您想在没有正确补丁的情况下将以下草图作为 Serial.flush 块永远运行,请按照本讨论中概述的步骤进行操作。当前的 Arduino 版本实现了这些更改,但截至撰写本文时(2021 年 11 月 12 日),我们无法从 Board Manager 下载新版本...
在 Serial.flush 工作后,我使用以下草图尝试测量 Nano 33 BLE Sense 和 Portenta H7 的 USB 虚拟串行端口的数据传输速率,分别为 11199 字节/秒和 19620 字节/秒:
const byte BYTE_TO_SEND = 170; //b'10101010'.
const unsigned long NUMERATOR = 1000000000;
void setup(){
Serial.begin(115200); //Does nothing on the nano 33 ble sense.
while (!Serial); //Wait for serial port to connect. Needed for native USB on nano 33 ble sense.
}
void loop(){
unsigned long startClock = micros();
for (int i = 1000; i > 0; i--) {
//Serial.write(BYTE_TO_SEND); //11199 bytes/second on nano33blesense.
Serial.write(BYTE_TO_SEND); //19435-19620 bytes/second on portenta h7.
Serial.flush();
}
unsigned long endClock = micros();
unsigned long bytesPerSecond = NUMERATOR / (endClock-startClock);
Serial.println("");
Serial.print(bytesPerSecond);
Serial.println(" bytes/second");
while(1);
}
我对这些结果感到失望):来自Arduino 论坛上这篇较早帖子的人用 Arduino Leonardo 进行了类似的速度测试,测得 39258 字节/秒!关于如何获得更快或希望更快的速度的任何想法?
或者测量策略有问题?
解决方案
推荐阅读
- xaml - 有没有更好的方法在 Xamarin Forms 上使用 XAML 绑定到 JObject?
- r - 从命令行调试 RMarkdown 文件
- javascript - 在对整个数组执行连接之前,如何对每个元素执行 encodeURI?
- php - 将数组作为单值存储到数据库中 - Laravel
- javascript - iframe 名称为动态时的目标 iframe
- service - 使用 Route53 ChangeResourceRecordSets 时出错
- python - pserve 在 VSCode python 调试器中启动后立即退出
- php - 用户登录时PHP MYSQL,将密码作为变量插入到不同的数据库?
- nativescript - 在 Nativescript 中,什么会生成 `platforms/tempPlugin` 文件夹?
- python - 无法安装 Bert Serving 服务器。“找不到满足要求 bert-serving-server 的版本”