首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Arduino Serial.Available()在255个字节后为false

Arduino Serial.Available()在255个字节后为false
EN

Stack Overflow用户
提问于 2021-04-21 21:06:04
回答 1查看 89关注 0票数 0

我正在使用连接到Dragino NB-IoT LTE Bg96的Arduino Nano BLE33。我正在尝试读取https get调用的回复。get调用成功了,为了读取它,我向BG96发送了AT命令。然后它将其发送到Uart,然后我尝试在arduino上读取它。但在255个字符之后,它停止了,我在不同的网站上尝试过(它们有不同的响应),但它在255个字符后中断。我以前使用了uint8_t(索引),所以我认为这是错误的,但在我将它改为int之后,它仍然发生了。

我的函数的一部分:

代码语言:javascript
运行
复制
uint8_t bg96::check_response(char* desired_response){
char character;
int index = 0;
memset(response, 0, ARRAYSIZE);
while (Serial1.available()){
    character = Serial1.read();
    response[index] = character;
    index++;
    Serial.print(character);
}
response[index] = '\0';
Serial.print("index : ");
Serial.println(index);

Serial.print("Response:");
Serial.println(response); 

响应:

代码语言:javascript
运行
复制
+QHTTPGET: 0,200
AT+QHTTPREAD=80
CONNECT
HTTP/1.1 200 OK
Server: nginx/1.14.2
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Request-Id: 616401ed-bb42-43b3-aba9-ab53952b9405
X-Token-Id: d242eb9a-9dc3index : 255
Response:

它应该是:

Complete HTTPS REsponse

EN

回答 1

Stack Overflow用户

发布于 2021-04-26 09:47:31

由于错误发生在某个字节之后,它通常意味着某种溢出。您还没有展示完整的代码,响应数组(或ARRAYSIZE,因为您正在使用memset清除它)的大小是多少。您的响应索引最有可能导致越界访问

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67196576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档