引脚图
2实现串口发送接收
1默认值初始化串口(默认是uart0)
Serial.begin(UART_BAUD);
参数是波特率
2自定义其他串口
2-1创建实例
HardwareSerial SerialUART(0); //数值指的是uart0 1为uart1.。。。。
2-2初始化
SerialUART.begin(UART_BAUD);//参数为比特率
也可以设置其他参数
baudrate:波特率,指定串行通信的速率,例如 9600、19200、115200 等。
config:配置参数,通常是一个枚举值,指定数据位、校验位和停止位的配置。例如,SERIAL_8N1 表示8个数据位、无校验位、1个停止位。
rxPin:接收引脚,指定用于接收数据的GPIO引脚编号。
txPin:发送引脚,指定用于发送数据的GPIO引脚编号。
inverse:(可选)指示是否反转信号线的极性。
2-3发送数据
Serial.print()
和 Serial.println()
与别.println()会自动在文本的结尾加回车“\n”
实例
Serial.print("Hello ");
Serial.print("World");
Serial.println("Hello ");
Serial.println("World");
2-4检测是否有数据从其他地方发送给板子
Serial.available()
用于检查串行缓冲区中是否有可用的数据等待读取。这个函数返回一个整数,表示缓冲区中未被读取的字节数。
当你想要从串行端口读取数据时,你通常会先检查Serial.available()
的返回值。如果返回值大于0,这意味着缓冲区中有数据可以读取。
实例
if (Serial.available() > 0) { // 如果有数据可读
int bytesRead = Serial.available(); // 获取可读字节数
//其他函数
}
2-5接收数据
接收一个字符并以整数类型返回
int SerialUART.read()
: 这个方法从串行缓冲区中读取下一个可用的字节,并返回它作为一个整数(0 到 255)。如果没有可用的数据,它将返回 -1
。
int SerialUART.read();
接收一个字符串并以String类型返回
String SerialUART.readString()
: 这个方法读取所有可用的字符,并将它们作为字符串返回。它直到遇到终止字符(默认为换行符 \n
)或直到超时发生时才会停止读取。
String SerialUART.readString();
实例
#include <Arduino.h>
// 定义 UART1 引脚
#define TX_PIN 1 // U1TXD
#define RX_PIN 0 // U1RXD
// 定义 UART 配置
#define UART_BAUD 115200 //波特率
// 创建 HardwareSerial 实例
HardwareSerial SerialUART(1);//uart1
void setup() {
// 初始化串行通信
Serial.begin(UART_BAUD);//uart0
SerialUART.begin(UART_BAUD,SERIAL_8N1,RX_PIN,TX_PIN);//uart1
// 等待串行通信准备就绪
while (!Serial) {
delay(100);
}
Serial.println("UART0 设置成功");//
}
void loop() {
//SerialUART.println("A: ");
if (SerialUART.available() > 0) { // 如果有数据可读
String input=SerialUART.readString();//接收数据
SerialUART.println(input);//发送数据
}
// 等待一段时间
delay(500);
}