上篇,我们介绍了串行通信的原理与方式。本章我们就详细聊聊Arduino中的串口通信!
Arduino UNO板上的0(RX)和1(TX)引脚就是串口通信的专用引脚,而且通过板子上的ATMEGA16u2转串口芯片就可以与计算机的USB端口连接并通信。
实际上我们在ArduinoIDE中上传程序时就是利用计算机的USB与Arduino UNO板上的串口之间的通信完成的,因此,在Arduino UNO板上连接一些非串口通信的传感器时,尽量避免使用0和1引脚,否则会干扰程序上传,导致上传失败。
在Arduino的核心类库中,默认包含了HardwareSerial库,因此可以在程序中直接使用Serial语句。
输出语句
Serial.begin(speed)//串口初始化语句,speed表示波特率,也就是说使用串口通信之前要初始化串口,并设定波特率,Arduino中常用的波特率有9600、38400和115200。
Serial.print(val)//串口输出语句,输出时默认不换行;val表示输出的数据,可以是单个字符、字符串、整数、实数等内容,数据会以ASCII的形式输出。
Serial.print(val,format);//以指定形式输出数据,而且不换行。format可以分两种情况,一种是输出数据的进制形式,包括BIN(二进制)、DEC(十进制)、OCT(八进制)、HEX(十六进制);另一种是指定输出实数的小数点位数(默认输出2位),例如:Serial