【ESP8266】使用atoi 或atof 死机重启-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2481|回复: 3

【ESP8266】使用atoi 或atof 死机重启

[复制链接]
发表于 2020-5-5 04:50 | 显示全部楼层 |阅读模式
大神好, 最近按照Robin2大神的教程->https://forum.arduino.cc/index.php?topic=288234.0 在ESP8266 调用 atoi 或 atof 时 ESP8266老是死机重启,死机重启.不知道大神们有没有尝试过用ESP8266调用atoi或者atof函数?

以下是从Robin2 大神的《Serial Input Basic》中复制下来的代码.
经过排查,只要运行atoi 或者 atof 就不断地重启.

我不是高手才学编程的菜鸟一枚, 求回答谢谢.


[mw_shl_code=arduino,true]// simple parse demo
char receivedChars[] = "This is a test, 1234, 45.3" ;

char messageFromPC[32] = {0};
int integerFromPC = 0;
float floatFromPC = 0.0;

char recvChar;
char endMarker = '>';
boolean newData = false;


void setup() {
Serial.begin(9600);
Serial.println("<Arduino is ready>");

parseData();
showParsedData();
}


void loop() {

}


void parseData() {

    // split the data into its parts
   
  char * strtokIndx; // this is used by strtok() as an index
  
  strtokIndx = strtok(receivedChars,",");      // get the first part - the string
  strcpy(messageFromPC, strtokIndx); // copy it to messageFromPC
  
  strtokIndx = strtok(NULL, ","); // this continues where the previous call left off
  integerFromPC = atoi(strtokIndx);     // convert this part to an integer
  
  strtokIndx = strtok(NULL, ",");
  floatFromPC = atof(strtokIndx);     // convert this part to a float

}


void showParsedData() {
Serial.print("Message ");
Serial.println(messageFromPC);
Serial.print("Integer ");
Serial.println(integerFromPC);
Serial.print("Float ");
Serial.println(floatFromPC);
}[/mw_shl_code]



 楼主| 发表于 2020-5-5 05:08 | 显示全部楼层
在这里补充一下:
我的目的是想把char array 里面的多个元素提出来分别 assign 至各个单独的变量里。
除了用atoi 和atof,还有什么方法可以把char array里的元素提出来, assign 为float 和 int?
发表于 2020-6-9 17:14 | 显示全部楼层
我也遇到类似问题,请问后来解决了吗?
发表于 2020-6-16 20:40 | 显示全部楼层
本帖最后由 526598 于 2020-6-16 20:48 编辑

我试过atoi  ,参数不能包含非数字字符 ,没用过strtok函数 ,你试试print 下strtok(receivedChars,",") 看看内容对不
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 12:45 , Processed in 0.104747 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表