2020-12-30 Arduino 串口应用

串口数据发送和接收

  • Serial.print 和 Serial.println 函数的差别,是 Serial.println 多一个换行,其余功能一样
  • Serial.available() 串口是否有数据接收
  • Serial.read() 从串口读取数据,读取完毕则从缓冲区清除
  • Serial.write() 串口发送数据,发送数组为 Serial.write( buff,buffsize)

代码实例

String comdata = "";  //定义 
//LOOP函数
loop{   
while (Serial.available() > 0)  
{
    comdata += char(Serial.read());
    delay(2);
}

if (comdata.length() > 0)
{   
    Serial.println(comdata);
    comdata = "";
}
}  

comdata是一个字符串类型变量。Serial.available()是当前串口缓冲池的数据量。Serial.read()是读缓冲池的语句,每次只能读一个字节。
用了String类型变量,很简单的实现了字符到字符串的加入,还有字符串输出,赋值等麻烦问题,所以很简单的代码就能处理串口数据。
特别留意的是读串口时的delay(2)不能删掉,否则串口缓冲区不够时间接受数据。即使调小延时也会出错。具体数值也可以实验决定。
再提醒一个:comdata说是一个字符串,也是一个数组,引用每个字的话可以用comdata[0],comdata[1]。。。comdata[n]。如果我们要每个字节取出的话,可以每个引用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容