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

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

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:需要读取的字符长度

Arduino Mega2560是基于ATmega2560微控制器的开发。其外围电路包括以下部分: 1. 电源电路:包括电源输入、稳压器、电源指示灯等。Arduino Mega2560的电源输入可以是直流电源或AC/DC适配器,稳压器将电源电压稳定在5V或3.3V,电源指示灯用于指示电源是否正常。 2. 外部晶振:Arduino Mega2560使用16MHz的晶振,用于控制CPU时钟频率。 3. USB串口:用于与计算机进行通信,可以通过USB串口上传程序和与计算机进行通信。 4. 串口:Arduino Mega2560有4个串口,其中一个是用于与计算机通信的USB串口,另外三个是UART串口,可以用于与其他串口设备进行通信。 5. 数字输入输出口:Arduino Mega2560有54个数字输入输出口,其中14个可以作为PWM输出口,6个可以作为硬件串口口,16个可以作为模拟输入口。 6. 模拟输入电路:Arduino Mega2560有16个模拟输入口,每个口可以输入0~5V的模拟信号。 7. 外部中断:Arduino Mega2560有6个外部中断口,可以用于响应外部中断事件。 8. LCD显示屏接口Arduino Mega2560有一个LCD显示屏接口,可以连接LCD显示屏进行显示。 9. SPI接口Arduino Mega2560有一个SPI接口,可以与SPI设备进行通信。 10. I2C接口Arduino Mega2560有一个I2C接口,可以与I2C设备进行通信。 11. SD卡接口Arduino Mega2560有一个SD卡接口,可以连接SD卡进行数据存储。 以上是Arduino Mega2560的主要外围电路部分。在实际应用中,开发者可以根据具体需求添加或删除相应的外围电路。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值