sysvpn 发表于 2015-7-26 09:27:42

【求助】如何让arduino串口接收1KB字符串

最近想用串口接收1KB左右的数据,不想用修改HardwareSerial.cpp文件的办法,请问如何实现?希望能贴出代码

maxims 发表于 2015-7-26 09:36:20

串口只能接收1字节的,自带的缓冲区不要考虑。

接收1字节,就自己存起来吧~只要存的地方够,你想多大都可以

sysvpn 发表于 2015-7-26 10:58:28

maxims 发表于 2015-7-26 09:36 static/image/common/back.gif
串口只能接收1字节的,自带的缓冲区不要考虑。

接收1字节,就自己存起来吧~只要存的地方够,你想多大都可 ...

不是这种情况,是我给另外一个模块发送命令,那个模块返回1KB字节的数据,我要全部接收,但好像超过串口缓存区的大小后,arduino不再接受,后面用read()只能取出在缓存区里面的数据

zghjack 发表于 2015-7-26 15:29:29

我用uno取esp返回的数据,数据短可以完整取,数据长取回来的不完整,感觉像是丢字符了。
不知道是不是跟你的情况一样。

Super169 发表于 2015-7-26 15:52:44

sysvpn 发表于 2015-7-26 10:58 static/image/common/back.gif
不是这种情况,是我给另外一个模块发送命令,那个模块返回1KB字节的数据,我要全部接收,但好像超过串口缓 ...

你要看你的程序處理的速度, 以及連線速度.
如果用 9600bps, 一般接收了一個 byte 之後還要等一等, 基本上不會出現媛存區不夠用.
除非你每接收一個 byte, 都要做很多東西吧.否則, 專注接收, 是不會有問題的.

pzg123 发表于 2015-7-28 20:38:57

String str = "";
while (Serial.available()){
    str = Serial.readString();//Serial.readString()返回的是一个String,很长的字符串时也不会出现丢失
}
if(str.length()){
    //if(str.indexOf("Apache")>0)//查找字符串
      Serial.println(stc);
    }
页: [1]
查看完整版本: 【求助】如何让arduino串口接收1KB字符串