基于Arduino平台的单片机控制技术 课件 第10章 串口通信实训项目设计_第1页
基于Arduino平台的单片机控制技术 课件 第10章 串口通信实训项目设计_第2页
基于Arduino平台的单片机控制技术 课件 第10章 串口通信实训项目设计_第3页
基于Arduino平台的单片机控制技术 课件 第10章 串口通信实训项目设计_第4页
基于Arduino平台的单片机控制技术 课件 第10章 串口通信实训项目设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章串口通信实训项目设计2024

串口也叫通用异步收发器(UART),是ArduinoUNO控制板最基本的通信接口,在此前学习中,上传程序或调用串口监视器都是利用串口通信实现。对于ArduinoUNO控制板,只有一组串口,使用时占用数字端子0(RX)和1(TX)。本章节我们来学习如何使计算机与Arduino通过串口进行通信,控制LED灯的状态。串口通信实训描述串口通信的定义和在电子设备中的重要性。串口通信与并行通信的区别。认识串口通信通过实际编程练习,掌握Arduino串口通信的编程技巧。掌握Arduino串口通信编程解释串口通信中常用的函数库语句及其作用。理解串口通信函数库语句学习目标1.材料清单硬件知识名称电子元件功能描述面包板

用于接线连接元器件电阻220Ω

红色LED

LED发光模块编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输入高电平灯亮,低电平则灯灭2.硬件材料介绍

在Ardiuno控制器上,串口都是位于0(RX)和1(TX)的两个引脚,Ardiuno的USB口通过一个转换芯片与这两个串口引脚连接。

转换芯片的作用是通过USB接口在所连接的计算机上虚拟出一个用于与Ardiuno通信的串口,从而实现计算机与Ardiuno之间建立串口连接,进行数据互传。

每台设备的串口通常只能连接另外一台设备的串口进行通信,进行通信的两台设备的串口对应的发送端子(TX)和接收端子(RX)需要交叉相连,共用一个电源地,连接示意图如图10-1所示。硬件知识图10-1两台设备串口连接示意图

上传程序的过程实际就是占用串口进行通信的过程,因此通信不需另外接线,只需根据此前所学,连接一盏LED灯即可,实训硬件连线图如图所示。3.硬件连线硬件知识021.知识要点图形化编程2程序编写图形化编程在此前程序基础上,结合前面章节内容,修改程序,实现通过计算机发送字符控制实现花样灯效果。3.程序拓展图形化编程02代码编程(1).串口初始化

要想使Ardiuno串口与计算机通信,需要先使用Serial.begin()函数初始化Ardiuno串口通信功能,即Serial.begin(speed)

串口通信波特率指设定串口通信速率的参数,串口通信双方必须使用同样的波特率方能正常进行通信。Ardiuno串口通信通常会使用以下波特率:300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200。例如之前实验在程序初始化时,设speed为9600。

波特率的大小衡量通信速度,单位为bit/s,即每秒传送的比特数。例如9600波特表示每秒发送9600bit的数据。波特率越大,说明串口通信的速率越高。1.串口通信语句02代码编程(2).串口输出

在串口初始化完成后,便可以使用Serial.print()或Serial.println()函数向计算机或使用串口连接的其他设备发送信息了,函数用法如下:Serial.print(val);Serial.println(val);//参数val是要输出的数据,允许输出各种数据类型Serial.println(val)语句也是使用串口输出数据,不同的是在其输出完指定的val数据后,再输出一组(/r/n)回车换行符。

串口监视器是ArdiunoIDE自带的一个小工具,可用来查看串口传来的信息,也可向连接的设备发送信息。为了保证能够正常的收/发数据,要注意串口监视器右下角的波特率设置,下拉菜单设置波特率与程序编写初始化的波特率保持一致。1.串口通信语句02代码编程(3).串口输入

除了输出,串口也可以接收由计算机或串口连接的设备所发出的数据。接收串口数据需要使用Serial.read()函数,当程序调用时,每次都会向Ardiuno返回1字节数据,该返回值便是当前串口读到的数据。

程序下载成功后,运行串口监视器,在上方“发送”按钮左侧的文本框中输入要发送的信息,如“ardiuno”,则会看到在输出了Ardiuno的同时还出现了乱码。这些乱码是由于在串口缓冲区中没有可读数据造成的。当缓冲区中没有可读数据时,Serial.read()函数会返回int型值-1,而int型值-1对应的char型数据便是输出的乱码。

什么是串口缓冲区呢?在使用串口时,Ardiuno会在SRAM中开辟一段大小为64B的空间,串口接收到的数据都会被暂时存放在该空间中,称这个存储空间为缓冲区。

通常在使用串口读取数据时,为了解决乱码问题,需要搭配使用Serial.available()函数,知道缓冲区的字节数,可以搭配if或while语句来使用。1.串口通信语句02代码编程(3).串口输入1.串口通信语句程序下载完成后,打开串口监视器,键入并发送任意信息,则会看到Ardiuno输出了刚发送过去的信息,并且不再出现乱码了,示例代码如下:程序中使用Serial.read()语句接收数据并进行判断,当接收到的数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论