Arduino 串口通信
Arduino 与计算机通信最常用的方式就是串口通信。在 Arduino 控制器上,串口都是位于 0(RX)和 1(TX)的两个引脚,Arduino 的 USB 口通过一个转换芯片(通常是 ATmega16u2)与这两个串口引脚连接。该转换芯片会通过 USB 接口在计算机上虚拟出一个用于与 Arduino 通信的串口。
因此,当使用 USB 线将 Arduino 与计算机连接时,两者之间便建立了串口连接。通过此连接,Arduino 便可与计算机互传数据了。

串口初始化
在使用串口与计算机通信之前,需要先使用 Serial.begin() 函数初始化 Arduino 的串口通信功能。函数原型如下:
Serial.begin(speed);
Serial.begin(speed, config);
其中,Serial 是 Arduino 预先定义好的串口对象;参数 speed 为串口通信的波特率,数据类型为 long;参数 config 是可选的,用于设置串口通信的数据位、校验位、停止位,默认为 SERIAL_8N1。
波特率是一个衡量通信速度的参数,它表示每秒传送的比特(bit)的个数。例如 9600 bps 表示每秒发送 9600 bit 的数据。使用串口通信的双方必须使用一致的波特率才能正常通信。串口通信中常用的波特率有 300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200。波特率越高,表明串口通信的速率越高。
串口初始化示例:
void setup()
{
Serial.begin(9600); // 打开串口,并设置波特率为 9600 bps
}
串口输出
串口初始化完成后,就可以使用 Serial.print() 和 Serial.println() 函数向计算机发送信息了。函数原型如下:
Serial.print(val)
Serial.print(val, format)
参数 val 是要输出的数据,各种类型的数据均可;参数 format 是可选的,用于指定输出格式,其值可以是 BIN(二进制)、DEC(十进制)、OCT(八进制)、HEX(十六进制),或者是指定浮点数输出的小数位数(默认输出两位)。
例如:
Serial.print(78); // 输出 "78"
Serial.print(1.23456); // 输出 "1.23"
Serial.print('N'); // 输出 "N"
Serial.print("Hello world."); // 输出 "Hello world."