本帖最后由 lxf 于 2020-8-15 13:57 编辑
目标
1、掌握打印和打印换行的使用 2、使用FOR循环语句演示如何使用不同的格式向Arduino IDE程序的串口监视器发送数据
实验材料
Arduino UNO开发板 配套USB数据线 Arduino IDE软件
内容
使用FOR循环语句演示如何使用不同的格式向Arduino IDE程序的串口监视器发送数据
serial(串行通信)
串行端口用于Arduino和个人电脑或其他设备进行通信,所有Arduino控制器都有至少一个串行端口(也称为UART或者USART),个人电脑可以通过USB端口与Arduino的引脚0(RX)和引脚1(TX) 进行通信,所以当Arduino的引脚0和引脚1用于串行通信功能时,Arduino的引脚0和引脚1是不能做其他用的,也可以通过Arduino开发环境软件中的串口监视器来与Arduino 控制器进行串口通信,你只需要点击Arduino IDE软件中的“串口监视器”按钮就可以打开串口监视器。
Serial(串行通信)函数available 获取从串口读取有效的字节数(字符) begin 将串行数据传输速率设置为位/秒(波特)end 停用串行通信,使RX和TX引脚用于一般输入和输出 find 从串行缓冲器中读取数据 findUntil 从串行缓冲区读取数据,直到找到一个给定的长度或字符串终止位 flush 等待超出的串行数据完成传输 peek 返回传入的串行数据的下一个字节(字符),而不是进入内部串行缓冲器调取 print 以人们可读的ASCII文本形式打印数据到串口输出 println 打印数据到串行端口,输出人们可识别的ASCII码文本并回车(ASCII,或\r)及换行(ASCII10,或\n) parselnt 查找传入的串行数据流中的下一个有效的整数 parseFloat 命令从串口缓冲区返回第一个有效的浮点数 read 读取传入的串口的数据 readBytes 从串口读取字符到一个缓冲区 readBytesUntil 将字符从串行缓冲区读取到一个数组 write 写入二级制数据到串口
print()
以人类可读的ASCII码形式向串口发送数据,该函数有多种格式,整数的每一数位将以ASCII码形式发送,浮点数同样以ASCII码形式发送,默认保留小数点后两位,字节型数据将以单个字符形式发送,字符和字符串会以其相应的形式发送,例如:
Serial.print(78) 发送 “78”
Serial.print(1.23456) 发送 “1.23”
Serial.print(‘N’) 发送 “N”
Serial.print(“Hello world.”) 发送 “Hello world.” 此指令也可以通过附加参数来指定数据的格式,这个允许的值为:BIN (binary二进制), OCT (octal八进制), DEC (decimal十进制), HEX (hexadecimal十六进制),对于浮点数,该参数可以指定小数点的位数。例如:
Serial.print(78, BIN) 发送 “1001110”
Serial.print(78, OCT) 发送 “116”
Serial.print(78, DEC) 发送 “78”
Serial.print(78, HEX) 发送 “4E”
Serial.println(1.23456, 0) 发送 “1”
Serial.println(1.23456, 2) 发送 “1.23”
Serial.println(1.23456, 4) 发送 “1.2346”
语法
Serial.print(val)
Serial.print(val, format)
参数
val: 要发送的数据(任何数据类型)
format: 指定数字的基数(用于整型数)或者小数的位数(用于浮点数)
返回值
size_t (long): print()返回发送的字节数(可丢弃该返回值)
println()
以人类可读的ASCII码形式向串口发送数据,类似 print()指令,但是有换行。
语法
Serial.println(val) Serial.println(val, format)
参数
val: 要发送的数据(任何数据类型)
format: 指定数字的数据形式或小数的位数(用于浮点数)
返回值
size_t (long): println()返回发送的字节数(可丢弃该返回值)
示例程序
- int x = 0; // 定义整型变量X为0
- void setup() {
- Serial.begin(9600); // 打开串口通讯
- }
- void loop() {
- Serial.println("NO"); // 打印文字标志
- Serial.print("Format"); // 打印文字标志
- Serial.print("\t"); //空格
- Serial.print("DEC"); // 打印文字标志
- Serial.print("\t");
- Serial.print("HEX"); // 打印文字标志
- Serial.print("\t");
- Serial.print("OCT"); // 打印文字标志
- Serial.print("\t");
- Serial.print("BIN"); // 打印文字标志
- Serial.print("\t");
- Serial.println(""); //换行
- for(x=0; x< 64; x++){
- //通过不同格式显示
- Serial.print(x); // 输出ASCII编码的十进制数字,与"DEC"相同
- Serial.print("\t");
- Serial.print(x, DEC); // 输出ASCII编码的十进制数字
- Serial.print("\t");
- Serial.print(x, HEX); // 输出ASCII编码的十六进制数字
- Serial.print("\t");
- Serial.print(x, OCT); // 输出ASCII编码的八进制数字
- Serial.print("\t");
- Serial.println(x, BIN); // 输出ASCII编码的二进制数字,然后换行
- delay(500); //延迟500毫秒
- }
- Serial.println(""); // 再次换行
- }
复制代码
运行结果
程序运行后,串口监视器显示结果如下:
|