Arduino通过串口与计算机交流

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

内容简介: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通过串口与计算机交流》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Agile Web Development with Rails, Third Edition

Agile Web Development with Rails, Third Edition

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2009-03-17 / USD 43.95

Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve a......一起来看看 《Agile Web Development with Rails, Third Edition》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具