Arduino(2) Mega2560和外部设备串口通信

本文介绍了Arduino Mega2560如何进行串口通信,包括硬件串口通信的常用函数如Serial.begin(), Serial.read()等,以及如何使用SoftwareSerial类库创建软串口,实现与多个设备的通信。内容涵盖了串口通信的基本原理和实际应用。" 81120354,5628410,SVM深入解析:线性不可分情况下的解决方案,"['SVM', '机器学习', '数据挖掘', '非线性模型', '核方法']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Arduino开发板因为搭载的I/O资源较少,所以通常会采用串行通信方式。其中Arduino硬件集成了串口、IIC、SPI三种常见的通信方式,可以与具有相应通信接口的各种设备通信。这一章先介绍一下串口通信。
参考:CSDN博客 【STM32】串口通信基本原理(超基础、详细版)—— Yngz_Miao

硬件串口通信

  • 串口也被称为UART(Universal Asynchronous Receiver Transmitter,通用异步串行收发器)接口。两个设备在进行串口通信时,需要交叉相连发送端(TxD)和接收端(RxD),共用电源地线(GND),这也意味着通常一个串口只能连接一个设备进行通信。
    在这里插入图片描述
  • Arduino Mega2560开发板可以使用USB接口与电脑相连,使用的是默认的Serial串口,同时这块开发板还集成了额外的三个串口,TX和RX脚定义成从14脚起至19脚,也就是Mega2560作为下位机控制板除了和电脑上位机串口通信之外,还可以再和三个外部设备进行串口通信。
  • 硬件串口通信是指直接利用Arduino开发板上集成好的串口来进行通信,使用到了Arduino核心库里的HardwareSerial类,并且是默认被包含,无需include调用。它主要使用到的一些函数如下所示:
1. Serial.available()

获取到串口缓冲区接收到的字节数,最多可保存64Bytes

2. Serial.begin(speed)

初始化串口,可配置串口的各项参数。speed:波特率

3. Serial.find(target)

从串口缓冲区读取数据,直至读到指定的字符串。target:需要搜寻的字符串或字符

4. Serial.flush()

等待正在发送的数据发送完成。早期版本里可用来清空接收缓冲区。

5. Serial.peek()

返回一字节的数据,但不会从接收缓冲区删除该数据

6. Serial.print(val, format)

将数据以ASCII码形式输出。val:需要输出的数据 format:数据输出的格式

7. Serial.read()

从串口读取数据,每读取一个字节,就会从接收缓冲区移除一字节的数据。

8. Serial.readBytes(buffer, length)

从接收缓冲区读取指定长度的字符,并将其存入一个数组。buffer:用于存储数据的数组(char[]或者byte[]) length:需要读取的字符长度

9. Serial.write(val)

输出数据到串口,以字节形式。val:发送的数据

串口接收数据的两种方法

  • 第一种
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值