简单的串口通信(Serial)
一、相关函数
1.Serial.begin(speed):设置电脑与Arduino进行串口通讯时的数据传输速率(每秒传输字节数)。
2.Serial.end():终止串行通讯,让RX 和 TX引脚用于Arduino的输入(INPUT)或输出(OUTPUT)功能。
3.Serial.available():可用于检查设备是否接收到数据。该函数将会返回等待读取的数据字节数。
4.Serial.read():可用于从设备接收到数据中读取一个字节的数据。
5.Serial.readString():可用于从设备接收到数据中读取数据信息。读取到的信息将以字符串格式返回。
6.Serial.print(val, format):以人类可读的ASCII码形式向串口发送数据,该函数有多种格式。整数的每一数位将以ASCII码形式发送。浮点数同样以ASCII码形式发送,默认保留小数点后两位。字节型数据将以单个字符形式发送。字符和字符串会以其相应的形式发送。【val: 要发送的数据(任何数据类型);format: 指定数字的基数(用于整型数)或者小数的位数(用于浮点数)。】
7.Serial.println(val, format):以人类可读的ASCII码形式向串口发送数据,类似print()指令,但是有换行。
8.while循环:连续地无限地循环,直到圆括号()中的表达式变为假。被测试的表达式变量必须被改变,否则while循环将永远不会中止。【while(表达式/循环条件){语句块/循环体}】
二、实践
1.在串口监视器中输入字符,输出“hello,world"
String date="";
void setup(){
Serial.begin(9600);
}
void loop() {
date="";
while(Serial.available()>0)
{
date+=char(Serial.read());
delay(2);
}
if(date.length()>0)
{
Serial.println("hello,world");
}
}
2.通过串口监视器控制LED灯的亮灭
String date1="";
int led=7;
void setup() {
Serial.begin(9600);
Serial.println("COM is ready");
Serial.println("Input Command :");
pinMode(led,OUTPUT);
}
void loop() {
while(Serial.available()>0)
{
date1+=char(Serial.read());
delay(2);
}
if(date1.length()>0)
{
if(date1=="open")
{
digitalWrite(led,HIGH);
Serial.println("The lED is opened.");
}
else if(date1=="close")
{
digitalWrite(led,LOW);
Serial.println("The LED is closed.");
}
else
{
Serial.println("ERROR!!!");
}
}
}
以上就是简单的串口通信,谢谢。