查看: 98|回復: 1
打印 上一主題 下一主題

【ESP8266】使用atoi 或atof 死機重啟

[復制鏈接]
  • TA的每日心情
    開心
    2020-5-5 06:17
  • 簽到天數: 1 天

    [LV.1]初來乍到

    跳轉到指定樓層
    樓主
    發表于 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 就不斷地重啟.

    我不是高手才學編程的菜鳥一枚, 求回答謝謝.


    kittenblock中小學創客名師推薦的圖形化編程軟件

    // 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);
    }




  • TA的每日心情
    開心
    2020-5-5 06:17
  • 簽到天數: 1 天

    [LV.1]初來乍到

    沙發
     樓主| 發表于 2020-5-5 05:08 | 只看該作者
    在這里補充一下:
    我的目的是想把char array 里面的多個元素提出來分別 assign 至各個單獨的變量里。
    除了用atoi 和atof,還有什么方法可以把char array里的元素提出來, assign 為float 和 int?
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    兩個ESP8266通訊,有大佬會的嗎?
    兩個ESP8266通訊,有大佬會
    我可以讓手機APP和8266遠程傳輸一些數據,現在要加多一個8266,應該怎么做?
    arduino連接ESP8266-01給微信發消息,消息提醒等
    arduino連接ESP8266-01給
    材料準備 ESP8266-01/ESP8266-01s一塊 arduino 一塊 手機一塊 接線 ESP8266-0
    我有個大膽的想法,大神請進
    我有個大膽的想法,大神請
    在B站,偶爾看到有大神用單片機做出各種智能設備,感覺很神奇,突然茅塞頓開,意識到
    又雙叒更新同步開關狀態 ,小愛同學+app+本地按鍵控制狀.....
    又雙叒更新同步開關狀態
    你有沒有發現app上面的按鍵在操作完畢后你就不知道開關的狀態了;或者小愛操作完畢后
    小白求助,急急急,各路大神幫幫忙
    小白求助,急急急,各路大
    傳感器技術,不知如何寫代碼
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    财神捕鱼游戏手机版下载