找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2708|回复: 2
打印 上一主题 下一主题
收起左侧

Arduino串口高级用法

[复制链接]
跳转到指定楼层
楼主
ID:375942 发表于 2018-8-21 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
配置串口通信数据位、校验位、停止位
  通常我们使用Serial.begin(speed)来完成串口的初始化,这种方式,只能配置串口的波特率。而使用Serial.begin(speed, config)可以配置数据位、校验位、停止位等。例如Serial.begin(9600,SERIAL_8E2)是将串口波特率设为9600,数据位8,偶校验,停止位2。config可用配置如下:
  if (Serial)的用法
  当串口被打开时,Serial的值为真。串口被关闭时Serial的值为假。比较囧的是,这个方法只适用于Leonardo和micro的 Serial,也就是说连接连接到电脑USB的那个模拟串口。例如以下程序,当你没有使用串口监视器打开串口时,程序就会一直循环运行while (!Serial) {;} ,当你打开串口监视器,程序会退出while循环,开始loop中的程序。
  read和peek输入方式的差异
  串口接收到的数据都会暂时存放在接收缓冲区中,使用read()与peek()都是从接收缓冲区中读取数据。不同的是,使用read()读取数据后,会将该数据从接收缓冲区移除;而使用peek()读取时,不会移除接收缓冲区中的数据。你可以使用以下程序,观察其运行结果:
  串口读入int型数据
  实际上是串口读入字符串,再转换为int型数据。
  输出不同进制的文本
  我们可以是用 Serial.print(val, format)的形式输出不同进制的文本
  参数val 是需要输出的数据
  参数format 是需要输出的进制形式,你可以使用如下参数:
  BIN(二进制)
  DEC(十进制)
  OCT(八进制)
  HEX(十六进制)
  例如,使用Serial.print(123,BIN),你可以在串口调试器上看到1111011
  使用Serial.print(123,HEX),你可以在串口调试器上看到7B
  修改串口缓冲区大小
  Arduino串口缓冲区默认为64字节,如果你单次传输的数据较多可以将arduino-1.0.5-r2\hardware\arduino\cores\arduino\HardwareSerial.cpp中的
  #define SERIAL_BUFFER_SIZE 64
  修改为 #define SERIAL_BUFFER_SIZE 128
  这样就有128字节的缓冲区了
  Arduino MEGA\Arduino DUE上其他串口用法
  serial1\serial2\serial3和serial用法一样,比如serial3.begin(9600);


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:375942 发表于 2018-8-21 09:10 | 只看该作者
最近创建了一个有关创客的QQ群,有兴趣的小伙伴可以加入学习分享820685901
回复

使用道具 举报

板凳
ID:370919 发表于 2018-8-29 15:12 | 只看该作者
你们研究的好透彻啊,佩服。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表