Arduino: 在 bpibit 上使用串口通信 (5)

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。在串口通信种,最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。

ESP32 有三个串口,分别是 Serial、Serial1、Serial2 。在 bpibit 板子用 Serial 与上位机通信。

配套介绍

编写工具: vscode + platformIO 安装教程

硬件: bpibit

主要函数

  • Serial.begin(speed, config): 初始化串口的配置
参数 功能
speed 波特率
config 数据位、校验位、停止位配置

串口通信 通常会使用以下波特率:
300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200

  • config : 是使用已经定义好的配置项进行配置的
config可选配置 数据位 校验位 停止位
SERIAL_5N1 5 1
SERIAL_6N1 6 1
SERIAL_7N1 7 1
SERIAL_8N1(默认配置) 8 1
SERIAL_5N2 5 2
SERIAL_6N2 6 2
SERIAL_7N2 7 2
SERIAL_8N2 8 2
SERIAL_5E1 5 1
SERIAL_6E1 6 1
SERIAL_7E1 7 1
SERIAL_8E1 8 1
SERIAL_5E2 5 2
SERIAL_6E2 6 2
SERIAL_7E2 7 2
SERIAL_8E2 8 2
SERIAL_5O1 5 1
SERIAL_6O1 6 1
SERIAL_7O1 7 1
SERIAL_8O1 8 1
SERIAL_5O2 5 2
SERIAL_6O2 6 2
SERIAL_7O2 7 2
SERIAL_8O2 8 2
  • Serial.print(val):向上位机打印输出信息
参数 功能
val 输出的数据

使用示例

#include <Arduino.h>

// 实现的功能:
// 在串口助手上显示发送到PC端的字符串。
// 从PC端接收到的字符发送回PC端

void setup()
{
  Serial.begin(9600, SERIAL_8E2); // 配置串口
  Serial.print("Please enter a character : ");  // 通过串口发送
}

void loop()
{
  if (Serial.available()!=0)  // 判断串口是否接收到数据
  {
    char re = Serial.read();  // 串口读取数据
    Serial.println(re);   // 串口发送数据
  }
}