Arduino通过串口与计算机交流

栏目: 软件资讯 · 发布时间: 6年前

内容简介:Arduino通过串口与计算机交流

Arduino上与计算机通信最常用的方式就是串口通信,本文讲解下Arduino下使用串口以及使用串口接收发、发送数据。

在Arduino控制器上,串口都是位于0 (RX)和1 (TX)的两个引脚, Arduino 的USB口通过一个转换芯片(通常为ATmega16 u2)与这两个串口引脚连接。该转换芯片会通过USB接口在计算机上虚拟出一个用于与Arduino通信的串口。

当Arduino控制器使用USB线与计算机相连时,两者之间便建立了串口连接。通过此连接,Arduino控制器可与计算机相互传数据了。

Arduino中与串口相关的函数有 Serial. begin()、Serial.available()、Serial.read()、Serial.println()和Serial.print() 这五个函数;下面分别介绍如何使用串口。

一、串口初始化

要想使串口与计算机通信,需要先使用 Serial. begin() 函数初始化Arduino的串口通信功能,即 Serial.begin(speed); 其中参数speed指串口通信波特率,它是设定串口通信速率的参数。串口通信的双方必须使用同样的波特率方能正常进行通信。波特率可以设置为300、600、1200、2400、4800、9600、14400等,波特率越大,串口通信的速率也就越高。常用的波特率为9600。

二、串口输出

串口初始化完毕后,便可以使用 Serial.print()Serial.println() 函数向计算机发送数据了。函数的用法是:

  • Serial.print(val);   其中val为要输出的信息,各种类型的数据即可。
  • Serial.println(val);   与Serial.print()类似,不同的是Serial.println()函数会在输出指定数据后,再输出一组回车换行符。

串口输出示例程序:

int counter = 0;
void setup() {
  // put your setup code here, to run once:

Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

counter = counter + 1;
Serial.print(counter);
Serial.print(':');
Serial.println(" Hell World!");
delay(100);
}

下载程序到Arduino开发板,点开IDE右上角的窗口监视器,就可以看到串口的输出信息了。如下图:

Arduino通过串口与计算机交流

Arduino通过串口与计算机交流

三、串口接收数据

使用串口同样可以接收由计算机发出的数据。接收串口数据需要使用 Serial. read() 函数,用法是:

Serial.read();

调用该语句,每次都会返回1字节的数据,该返回值便是当前串口读到的数据。

使用串口时,Arduino会在SRAM中开辟一段大小为64 B的空间,串口接收到的数据都会被暂时存放在该空间中,称这个存储空间为缓冲区。使用Serial.available()函数检测缓冲区是否有可读数据,该函数的用法是:

Serial.available();

Serial.available()函数的返回值是当前缓冲区中接收到的数据字节数。在使用时,先检测缓冲区中是否有可读的数据,如果有,则使用 Serial. read() 函数读取,没有则跳过或者等待再读取。

串口读数据的示例程序如下:

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
if(Serial.available()>0){
  char ch=Serial.read();
  Serial.print(ch);
  }
}

程序下载到Arduino后,打开串口监视器,键入并发送任何信息,则会看到Arduino接收该信息,并且将同样的信息通过串口输出。

Arduino通过串口与计算机交流


以上所述就是小编给大家介绍的《Arduino通过串口与计算机交流》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

劫持

劫持

玛丽•K. 斯温格尔(Mari K. Swingle) / 邓思渊 / 中信出版集团股份有限公司 / 2018-5-1 / CNY 59.00

《劫持》是一本探讨人与科技的关系的书,基于一位心理学博士20年的临床经验及其作为神经认知科学研究者的脑—电研究成果。在这本面向大众的科普书中,作者以深入浅出的方式,探讨了手机、电脑等便携式数字设备及让人“永不下线”的互联网对现代人尤其是青少年大脑的影响,从神经认知科学和精神分析的角度,有力地证明了数字媒介与大脑和人类行为的关系,探讨了手机等如何对人的大脑进行劫持或操控,并给出了自己作为从业医师的实......一起来看看 《劫持》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具