arduino⼀次性读取serial_arduino内置函数⼆
串⼝通信:是指控制器通过串⼝与其他的模块相互通信。如读取其他模块的数据,向其他模块发送数据等等。通信时,串⼝发起和接受双⽅的波特率必须相同。波特率越⼤,速度越快,但是出错的⼏率也越⼤。⼀般选取9600.
连接时,主控板与模块直接的连接线需要交叉,就是说,主控板的RX连接模块的TX,模块的TX连接主控板的RX。⽽且主控板与模块必须共地(将电源负极连接到⼀起)
新⼿经常犯的错误是主控板连接k模块后s程序⽆法烧写。主要是因为主控板的串⼝被模块占⽤,⽽烧写程序需要⽤到串⼝。所以烧写失败。烧写时需要将串⼝连接线断开。烧写完成后再j连接上就可以了。
RX.TX代表串⼝。RX是数据输⼊端,TX是数据输出端
串⼝配置
使⽤串⼝与计算机通信,需要先使⽤Serial.begin() 初始化Arduino的串⼝通信功能
Serial.begin(speed)
参数speed是指串⼝通信波特率
波特率
Arduino串⼝通信通常会使⽤以下波特率:
300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200
Serial.begin(speed, config)
初始化串⼝,可配置串⼝的各项参数
语法:
Serial.begin(speed)
Serial.begin(speed, config)
参数:
speed:波特率
config:数据位、校验位、停⽌位配置
返回值:
⽆
例如Serial.begin(9600,SERIAL_8E2) 是将串⼝波特率设为9600,数据位8,偶校验,停⽌位2。
config可选配置 数据位 校验位 停⽌位 SERIAL_5N1 5 ⽆ 1 SERIAL_6N1 6 ⽆ 1 SERIAL_7N1 7 ⽆ 1 SERIAL_8N1(默认配置) 8 ⽆1 SERIAL_5N2 5 ⽆ 2 SERIAL_6N2 6 ⽆ 2 SERIAL_7N2 7 ⽆ 2 SERIAL_8N2 8 ⽆ 2 SERIAL_5E1 5 偶 1 SERIAL_6E1 6 偶 1 SERIAL_7E1 7 偶 1 SERIAL_8E1 8 偶 1 SERIAL_5E2 5 偶 2 SERIAL_6E2 6 偶 2 SERIAL_7E2 7 偶 2 SERIAL_8E2 8 偶 2 SERIAL_5O1 5 奇 1 SERIAL_6O1 6 奇 1 SERIAL_7O1 7 奇 1 SERIAL_8O1 8 奇 1 SERIAL_5O2 5 奇 2 SERIAL_6O2 6 奇 2 SERIAL_7O2 7 奇 2 SERIAL_8O2 8 奇 2
串⼝输出
串⼝初始化完成后,我们便可以使⽤Serial.print() 或Serial.println() 向计算机发送信息了。
Serial.print(val)
参数
val是你要输出的数据,各种类型的数据均可
Serial.println(val)
println会在输出完指定数据后,再输出⼀组回车换⾏符
⽰例程序
int counter=0; // 计数器void setup() {// 初始化串⼝ Serial.begin(9600);}void loop() {// 每loop循环⼀次,计数器变量加1counter = counter+1;// 输出变量Serial.print(co 串⼝输⼊
接收串⼝数据需要使⽤ad()函数。
返回值
调⽤该语句,每次都会返回⼀个字节的数据,这个返回值便是当前串⼝读取到的数据。
⽰例程序
void setup() { // 初始化串⼝ Serial.begin(9600);}void loop() { // 读取输⼊的信息 char ad(); // 输出信息 Serial.print(ch); delay(1000); }
除此之外,串⼝还有很多控制函数,因为不常⽤,所以在这⾥不进⾏⼀⼀介绍了。以后的⽂章中,⽤到了会进⾏讲解
软串⼝
当单⽚机的串⼝不够⽤时,可使⽤软串⼝。使⽤前你需要先声明包含SoftwareSerial.h头⽂件。 其中定义的成员函数与硬件串⼝类
似,available()、begin()、read()、write()、print()、println()、peek() 等⽤法相同,这⾥便不⼀⼀列举。 此外软串⼝后还有如下成员函
数:
SoftwareSerial()
SoftwareSerial类的构造函数,通过它可指定软串⼝RX、TX引脚。 语法: SoftwareSerial mySerial= SoftwareSerial(rxPin, txPin) SoftwareSerial mySerial(rxPin, txPin) 参数: mySerial:⽤户⾃定义软件串⼝对象 rxPin:软串⼝接收引脚 txPin:软串⼝发送引脚
⽰例程序
/*Arduino Uno软串⼝通信*/#include SoftwareSerial mySerial(2, 3);void setup(){ Serial.begin(115200); while (!Serial) { } Serial.println("Goodnight moon!"); mySerial available()
获取串⼝接收到的数据个数,即获取串⼝接收缓冲区中的字节数。接受缓冲区最多可保存64 bytes的数据。⼀般⽤于侦测串⼝是否有数据
到来。
语法:
Serial.available()
参数:
⽆
返回值:
可读取的字节数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论