首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino Serial.print()优化

Arduino Serial.print()优化
EN

Stack Overflow用户
提问于 2011-04-04 03:27:34
回答 5查看 20.8K关注 0票数 2
代码语言:javascript
复制
unsigned long current_millis_value = 0;
unsigned long previous_millis_value = 0;
unsigned long m = 0;
unsigned int seconds = 0;
unsigned int minutes = 0;
unsigned int hours = 0;

unsigned long clockTimeStart = 1800000; //30 Minutes
unsigned long currentClockTime;

void loop() {
    current_millis_value = millis();
    currentClockTime -= current_millis_value - previous_millis_value;
    previous_millis_value = current_millis_value;

    minutes = (currentClockTime / 1000 / 60);
    seconds = (currentClockTime / 1000) % 60;
    m = (currentClockTime % 100);

    Serial.print(minutes);
    Serial.print(":");
    Serial.print(seconds);
    Serial.print(":");
    Serial.println(m);
}

我得到了一个间隔,在时间之间的串行写在任何地方,从9-11毫秒,每串行写行。是否有一种方法可以优化Serial.print()方法以允许跨类型的长值和字符串值写入多个值?

示例(这是无效的,但符合我的想法):

代码语言:javascript
复制
Serial.print(minutes + ":" + seconds + ":" + m);

我知道这不是我正在工作的JavaScript -只是为编写过程寻找优化的可能性。我知道MOD可能很贵,但是只要简单地减去和写出currentClockTime的值,我就会有6-7毫秒的间隙时间。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-04 04:12:36

arduino有一个类似于java的字符串连接。我不知道这是否会让你加快速度,但是在发送之前,它会把所有的东西连接成一个字符串。

代码语言:javascript
复制
String package = "" + minutes;
package += ":"+seconds;
package += ":"+m;
Serial.print(package);

如果您能够在另一边重建字符串,那么更好的操作可能是使用Serial.Write并发送原始数据,然后在接收端重构字符串。这将使每个循环发送的数据量从5-10字节减少到3-4字节。

票数 5
EN

Stack Overflow用户

发布于 2011-04-04 04:04:15

是否可以将所有内容预先转换为字符串值,这样您就可以一次写出整个字符串?例如,使用类似于snprintf()函数的东西将其写入预先分配的char[]中,然后在对Serial.print()的调用中打印出来。

例如:

代码语言:javascript
复制
char buffer[32];
snprintf(buffer, 32, "%u : %u : %lu", minutes, seconds, m);
Serial.print(buffer);

-杰森

票数 3
EN

Stack Overflow用户

发布于 2011-05-09 11:44:58

流式传输库应该做您想做的事情:

代码语言:javascript
复制
Serial << minutes << ":" << seconds << ":" << m;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5534290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档