在Arduino中更好的使用Serial.print

本文介绍了如何在Arduino编程中利用#define预处理器开关来控制Serial.print的使用,以便在调试完成后提升程序的运行效率。通过定义DEBUG0或DEBUG1,可以方便地开启或关闭串口打印功能,从而在不影响程序功能的同时减少不必要的代码执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Serial.print在调试阶段是比较好的助手,但是一旦你调试完成好后建议停止使用Serial.print函数,因为它会增加代码量降低程序运行效率。

可以用如下方法开关Serial.print功能。

#include <Arduino.h>

#define DEBUG 0

#if DEBUG == 1
#define debug(x) Serial.print(x)
#define debugln(x) Serial.println(x)
#else
#define debug(x)
#define debugln(x)
#endif

int addOne(int inX) {
    debug("Received value:");
    debugln(inX);
    
    // Other processing done here

    debugln("Returning.");
    return inX + 1;
}

void setup() {
    Serial.begin(9600);
    debugln("Setup complete.");
}

void loop () {
    static unsigned long counter = 0;
    unsigned long b = addOne(counter);
    debug("Counter:");
    debugln(b);

    // Emulate other processing being done herek
    delay(5000);
}

通过#define DEBUG 1或者#define DEBUG 0开关串口输出。

``` 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 /* XY-2.5AD-Demo * 太极创客 www.taichi-maker.com * 2018-08-02 * * 通过串行通讯使用XY-2.5AD控制两个DC电机 * 通过digitalWrite HIGH LOW 控制电机运行和停止。 * * 如果需要获取更多有关XY-2.5AD控制电机的相关知识,请前往太极创客网站 * www.taichi-maker.com * * XY-2.5AD 控制电机简介 * * DC电机 运行状态 IN1 IN2 IN3 IN4 * 电机A 正转(调速) 1/PWM 0 * 电机A 反转(调速) 0 1/PWM * 空转 0 0 * 刹车 1 1 * 电机B 正转(调速) 1/PWM 0 * 电机B 反转(调速) 0 1/PWM * 空转 0 0 * 刹车 1 1 * This example code is in the public domain. */ // XY-2.5AD 连接Arduino引脚编号 int IN1 = 3; int IN2 = 5; int IN3 = 6; int IN4 = 9; int pinNum; // 控制引脚号 int ctrlVal; // 电机运行控制 void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); Serial.begin(9600); Serial.println("++++++++++++++++++++++++++++++"); Serial.println("+ Taichi-Maker XY-2.5AD Demo +"); Serial.println("+ www.taichi-maker.com +"); Serial.println("++++++++++++++++++++++++++++++"); } void loop() { if (Serial.available()) { // 检查串口缓存是否有数据等待传输 char cmd = Serial.read(); // 获取电机指令中电机编号信息 switch(cmd){ case 'p': // 设置引脚编号 pinNum = Serial.parseInt(); Serial.print("Pin Number "); Serial.print(pinNum); Serial.print(" ,"); break; case 'a': // 模拟模式控制电机 ctrlVal = Serial.parseInt(); analogWrite(pinNum, ctrlVal); Serial.print("Set Value "); Serial.print(ctrlVal); Serial.println("."); break; case 'd': // 数字模式控制电机 ctrlVal = Serial.parseInt(); digitalWrite(pinNum, ctrlVal); Serial.print("Set Value "); Serial.print(ctrlVal); Serial.println("."); break; default: // 未知指令 Serial.println("Unknown Command"); break; } } }```请改成使用一个电机
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值