双源电子

在线客服
 工作时间
周一至周五 :8:30-17:30
周六至周日 :9:00-17:00

ARDUINO学习番外篇5

作者:双源电子

还来说一说串口相关的东西,有些时候我们会用串口去发送或者接收一串字符,在Arduino中可以使用下面几个函数来实现:
Serial.write(char*buf);//串口发送数组
Serial.print(TYPE);//串口发送数据,可以是任何常用类型
Serial.println(TYPE); //串口发送数据,并在结尾加换行符,可以是任何常用类型
Serial.read();//串口读取一个字节
在使用这些函数时,一定要考虑数据传输延时问题。很多实际应用中,代码虽然已经执行了,但是数据还没有完成传输,这就造成了通讯数据的错误。
比如下面代码:
Serial.print(“1234567890abcdef”);//发送字符串
Serial.read();//接收串口数据
这就会出现串口从发送状态迅速变成接收状态,发送的数据并没有完全发送成功的现象。该如何避免这个现象呢?
我们应该根据不同的串口波特率,来设置不同长短的延时,保证数据传输完成后,在对串口状态进行转换。 这个延时时间因该怎样计算呢?以波特率115200为例,串口通讯的速度为115200 比特/秒,因此,传输1个bit的时间为1/115200,大约为1/100K,串口通讯每一个字节常用的为8个比特,加上起始位(1)和停止位(一般为1)(校验位一般没有)一共为8+1+1=10比特,因此1个字节的传输时间为10/100k=1/10k(秒),因此,如果发送一个字节,需要花的时间就是0.1ms,加入我们要发送30个字节的数据,就需要等待0.1*3=3ms时间,等待数据传输完成后,再改变串口状态,才不会漏发数据。

联系方式
_faiMaterial_000045

联系人:ANTBOT001

QQ:584860790

邮 箱:584860790@qq.com

交流群: 615486305