【项目2-小组1-任务2】PWM实现变色LED灯(二)—串口输入输出的基本方法

PWM实现变色LED灯——串口输入输出的基本方法


Arduino串口的使用——与计算机交流

•Arduino与计算机通信最常用的方式就是串口通信

•我们使用USB线连接Arduino Uno与计算机时,Arduino Uno会在计算机上虚拟出一个串口设备,此时两者之间便建立了串口连接。通过此连接,Arduino Uno便可与计算机互传数据。

串口初始化

•使用串口与计算机通信,需要先使用Serial.begin() 初始化Arduino的串口通信功能。

•参数speed是指串口通信波特率,这是设定串口通信速率的参数。串口通信的双方必须使用同样的波特率,方能正常进行通信。

波特率

波特率是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如9600波特表示每秒发送9600bit的数据。通信双方需要使用一致的的波特率才能正常通信。Arduino串口通信通常会使用以下波特率:

300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200 (单位:bps)

波特率越大,说明串口通信的速率越快。

串口输出

串口初始化完成后,我们便可以使用Serial.print() 或Serial.println() 向计算机发送信息了。

•参数val是你要输出的数据,各种类型的数据均可。

•Serial.println(val) 语句也是使用串口输出数据,不同的是println() 函数会在输出完指定数据后,再输出一组回车换行符。

使用串口输出数据到计算机

上传该程序到Arduino Uno,然后可以通过Arduino IDE右上角的 图标打开串口监视器。

注意保证串口监视器右下方的波特率和上传程序中的一致,才能保证正常运行。

串口输入

•除了输出,串口同样可以接收由计算机输出的数据。接收串口数据需要使用Serial.read()函数。

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

•上传以下程序到Arduino:



上传成功后,运行串口监视器,在发送按键左侧的文本框中输入要发送的信息,如"arduino",你会看到Arduino在输出了你输入的信息同时,还输出了很多乱码。

这些乱码是因为串口缓冲区中没有可读数据造成的。当缓冲区中没有可读数据时,read()函数会返回int型值-1,而int型-1对应的char型数据便是该乱码。

在使用串口时,Arduino Uno会在SRAM中开辟一段大小为256 bytes的空间,串口接收到的数据都会被暂时存放进这个空间中,这个存储空间,我们称之为缓冲区。当你调用Serial.read()语句时,Arduino便会从缓冲区取出一个字节的数据。

通常使用串口读取数据时,需要搭配Serial.available() 语句使用。

Serial.available() 的返回值便是当前缓冲区中接收到的数据字节数。

Serial.available() 可以搭配if 或者while使用,先检测缓冲区中是否有可读数据,如果有数据,再读取,没有数据便跳过读取或等待读取。如:

上传完成后,打开串口监视器,键入并发送任意信息。你会看到Arduino输出了你发送过去的信息,并且不会再出现乱码了。


需要注意的是,在串口监视器右下角有两个选项,一个是设置结束符,一个是设置波特率。如果你设置了结束符,则在你最后发送完数据后,串口监视器会自动发送一组你设定的结束符,如回车符和换行符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文翻译自 Arduino 串行通讯的官方文档。 本文的最新版本位于:https://github.com/iwh...
    import_hello阅读 4,269评论 0 7
  • 大家好!这是小编第二次做小项目~ 小编目前专业是电气自动化的,不搞点硬件方面的东西,不学点控制技术...
    世缘阅读 11,215评论 4 15
  • 在很多时候,Arduino需要和其他设备相互通讯,而最常见最简单的方式就是串口通讯。本篇介绍Arduino硬件串口...
    TonyCode阅读 104,240评论 1 15
  • 折腾了许久 感觉有些疲惫 或许曾经 尽可能将力所能及的事都往身上揽 因为有太多的放不下 以前曾看到一个故事 小僧喜...
    雁楠秋阅读 385评论 0 2
  • 文/凤城抗靶子 父亲已是耄耋翁 ,腿脚利索脑瓜灵。 江南古镇走一遭,一路赏景悦心情。 儿子开车兴冲冲,后排坐着白发...
    许文晓阅读 290评论 0 0

友情链接更多精彩内容