Serial.begin

本文介绍了Arduino中Serial.begin函数的使用,不仅用于设置波特率,还可以配置数据位、校验位和停止位。例如,Serial.begin(9600, SERIAL_8E2)表示波特率9600,8位数据,偶校验,2位停止。讨论了通过Serial.begin(speed, config)的配置选项,包括SERIAL_8E2的含义。还涵盖了串口读取数据的方法差异,如read()与peek(),以及如何读取和转换int型数据。此外,提到了修改串口缓冲区大小的方法,并提供了Arduino MEGA和DUE上其他串口的用法。最后,提到了经典Processing与Arduino通信中Serial.available()的应用。" 8190773,1243445,UML类关系解析:关联、聚合、组合与依赖,"['软件工程', 'UML', '设计模式', '面向对象', '编程原理']
摘要由CSDN通过智能技术生成

 

串口波特率的设置:通常我们使用Serial.begin(speed)来完成串口的初始化,这种方式,只能配置串口的波特率。

使用Serial.begin(speed, config)可以配置数据位、校验位、停止位等。例如Serial.begin(9600,SERIAL_8E2)是将串口波特率设为9600,数据位8,偶校验,停止位2。

9600 串口波特率

SERIAL_8E2

8:8位

E:偶校验

2:停止位

config可用配置如下:

1: 少用 if (Serial)的用法:串口打开为真,串口关闭为假。比较囧的是,这个方法只适用于Leonardo和micro的 Serial,也就是说连接连接到电脑USB的那个模拟串口。例如以下程序,当你没有使用串口监视器打开串口时,程序就会一直循环运行while (!Serial) {;} ,当你打开串口监视器,程序会退出while循环,开始loop中的程序。

2: read和peek输入方式的差异    串口接收到的数据都会暂时存放在接收缓冲区中,使用read()与peek()都是从接收缓冲区中读取数据。不同的是: 使用read()读取数据后,会将该数据从接收缓冲区移除; 使用peek()读取时,不会移除接收缓冲区中的数据。

3: 串口读入int型数据  实际上是串口读入字符串,再转换为int型数据。 输出不同进制的文本  可以是用 Serial.print(val, format)的形式输出不同进制的文本 。 参数val 是需要输出的数据  参数format 是需要输出的进制形式,可以使用如下参数:   BIN(二进制)   DEC(十进制)   OCT(八进制)   HEX(十六进制)    例如,使用Serial.print(123,BIN),你可以在串口调试器上看到1111011   使用Serial.print(123,HEX),你可以在串口调试器上看到7B 。 4: 修改串口缓冲区大小: Arduino串口缓冲区默认为64字节,如果单次传输的数据较多可以将arduino-1.0.5r2\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);

重要之处: 经典的Processing与Arduino通信实例: 使用S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值