串口通信(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); // 串口发送数据
}
}