tag:blogger.com,1999:blog-2573408397176312387.post7269955017272928018..comments2023-10-14T08:44:15.232+08:00Comments on ㄆㄜ ㄊㄧㄡ ㄙˋ: {有獎徵答} 給我一個可操作 AT 指令的 Arduino 函式庫 - 解決 AT 指令處理的蛋疼問題 (親測 Ai-Mod, AT v1.2.0.0 based on SDK v1.5.4.1 韌體)Ruten.proteushttp://www.blogger.com/profile/01780188542231506811noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-2573408397176312387.post-50235895939253986632017-02-18T19:27:02.007+08:002017-02-18T19:27:02.007+08:00我的Arduino是1.06版的,改成arduino 1.8.1編譯就沒問題了.謝謝您.我的Arduino是1.06版的,改成arduino 1.8.1編譯就沒問題了.謝謝您.Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-5773385899959857192017-02-17T20:22:42.730+08:002017-02-17T20:22:42.730+08:00是 LCD5110_Basic.h 沒錯 !
你確定是那一行產生錯誤而不是其他的地方? 因為不管有沒...是 LCD5110_Basic.h 沒錯 !<br />你確定是那一行產生錯誤而不是其他的地方? 因為不管有沒加,我這邊編譯時沒有產生任何錯誤!Ruten.proteushttps://www.blogger.com/profile/01780188542231506811noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-57565943918594228802017-02-17T20:05:27.793+08:002017-02-17T20:05:27.793+08:00神大您好,
因我想先確定LCD51110可以顯示,故程式還沒改成接收一個顯示一個.
您說改成myG...神大您好,<br />因我想先確定LCD51110可以顯示,故程式還沒改成接收一個顯示一個.<br /><br />您說改成myGLCD.print( (char)Serial.read(), CENTER, 55);的方式,但我編譯還是會出現相同錯誤,可是您說沒問題,想請問您#include後面是用LCD5110_Basic.h函式嗎?Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-77483334252246135452017-02-17T00:38:12.485+08:002017-02-17T00:38:12.485+08:00Arduino IDE v1.6.12 單獨跑下面程式碼沒有任何錯誤產生,不清楚你為什麼會發生問題!...Arduino IDE v1.6.12 單獨跑下面程式碼沒有任何錯誤產生,不清楚你為什麼會發生問題!<br />而且,你的程式碼應該是接收一整個資料之後再丟進去 print 做顯示,而不是接收一個顯示一個!這樣只會顯示一個字元的資料。<br />//---------<br />#include <br /><br />LCD5110 myGLCD(8,9,10,11,12);<br />extern uint8_t SmallFont[];<br />extern uint8_t MediumNumbers[];<br />extern uint8_t BigNumbers[];<br /><br />void setup()<br />{<br /> myGLCD.InitLCD();<br /> Serial.begin(9600);<br />}<br /><br />void loop()<br />{<br /> myGLCD.setFont(SmallFont);<br /> myGLCD.print(Serial.read(), CENTER, 55);<br />}<br /><br />///---------------------<br />如果你的編譯有問題,試試改這樣試試<br />myGLCD.print( (char)Serial.read(), CENTER, 55);<br />Ruten.proteushttps://www.blogger.com/profile/01780188542231506811noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-14949601486560937652017-02-16T21:20:38.652+08:002017-02-16T21:20:38.652+08:00神大您好
我改用myGLCD.print(Serial.read(), CENTER, 55);
但...神大您好<br />我改用myGLCD.print(Serial.read(), CENTER, 55);<br />但arduino verify時卻出現 conversion from 'int' to 'String' is ambiguous<br />程式中並沒有設定int的部分,您知道為什麼會這樣嗎?Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-33968038710130475232017-02-14T21:39:44.873+08:002017-02-14T21:39:44.873+08:00感謝神大指點,
趕快先去找使用手冊,不知要怎麼感謝神大,如我能力範圍可及,請再告訴我.謝謝.感謝神大指點,<br />趕快先去找使用手冊,不知要怎麼感謝神大,如我能力範圍可及,請再告訴我.謝謝.Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-41436579875144636412017-02-13T23:52:21.462+08:002017-02-13T23:52:21.462+08:00大概看一下你的程式碼!
就如之前回覆的,如果你已經可以在 com port 上面看到發送與接收的字串...大概看一下你的程式碼!<br />就如之前回覆的,如果你已經可以在 com port 上面看到發送與接收的字串,但是無法顯示在LCD5110,那個應該就是你的 LCD5110 顯示的函式使用錯誤 !<br />你的接收顯示的程式碼中,並沒有去處理接收到 +IPD... 的字串,而是直接將它由 com port 顯示出來,所以可以看到接收到的字串,那是當然的!也由於你沒有去處理,而是將它直接使用 myGLCD.printNumF(c, 1, LEFT, 0); 做輸出,所以會造成錯誤。<br />由 LCD5110 basic 資料手冊上面可以看到三個使用於輸出的函式:print, printNumI(), printNumF,分別是顯示字串, 整數和浮點數,而程式收到的是字串卻用顯示浮點數的函式做顯示,因為一次只輸出一個浮點數,所以只會找到最後面接收到的字元,所以才會一直顯示 48.0 !<br />建議你,若直是想直接輸出接收到的字串,直接使用 print 就可以,但是因為你是單一字元接收作顯示,因此座標要輸出一次變一次,不然有可以只有最左邊的字元會做變化。<br />有問題可以去參考一夏 LCD5110 的資料手冊,相關函式有很清楚的說明 !<br />以上,希望對你有所幫助!Ruten.proteushttps://www.blogger.com/profile/01780188542231506811noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-51305901391615644742017-02-13T19:54:53.054+08:002017-02-13T19:54:53.054+08:00LCD5110會一直顯示48.0,若我將AP端讀到的 char c = debug.read()-4...LCD5110會一直顯示48.0,若我將AP端讀到的 char c = debug.read()-48 ; 變成一直顯示0.0,就是無法顯示讀到的值...Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-59722492798220924442017-02-13T19:50:01.045+08:002017-02-13T19:50:01.045+08:00謝謝您的回覆:
我AP端的程式:
#include
#include
#define _baud...謝謝您的回覆:<br />我AP端的程式:<br />#include <br />#include <br />#define _baudrate 9600<br />#define _rxpin 8<br />#define _txpin 9<br />SoftwareSerial debug( _rxpin, _txpin ); // RX, TX<br />#define SSID "ALPHABRASS1"<br />#define PASS "harmony1"<br />#define IP "192.168.4.1"<br />#include <br />LCD5110 myGLCD(3,4,5,6,7);<br />extern uint8_t SmallFont[];<br />extern uint8_t MediumNumbers[];<br />extern uint8_t BigNumbers[];<br />float t1;<br /><br />void setup() {<br />myGLCD.InitLCD(); <br />Serial.begin( _baudrate );<br />debug.begin( _baudrate );<br />sendDebug("AT");<br />Loding("sent AT");<br />sendDebug("AT+CWMODE=2");<br />delay(1000);<br />Loding("AT+CWMODE=2");<br />delay(4000); <br />connectWiFi();<br />}<br /><br />void loop() {<br /> if (debug.available())<br /> { <br /> myGLCD.clrScr(); <br /> myGLCD.setFont(SmallFont);<br /> String s = "";<br /> char c = debug.read() ; <br /> Serial.print(c); <br /> myGLCD.printNumF(c, 1, LEFT, 0);<br /> }<br /> if (Serial.available())<br /> { char c = Serial.read();<br /> debug.print(c); <br /> } <br />}<br /><br />boolean connectWiFi()<br />{<br /> Wifi_connect();<br />}<br /><br />void Wifi_connect()<br />{<br /> String cmd="AT+CWSAP=\"";<br /> cmd+=SSID;<br /> cmd+="\",\"";<br /> cmd+=PASS;<br /> cmd+="\",6,4"; <br /> sendDebug(cmd);<br /> delay(2000);<br /> sendDebug("AT+CIFSR");<br /> delay(1000);<br /> Loding("AT+CIFSR"); <br /> delay(2000);<br /> sendDebug("AT+CIPMUX=1");<br /> delay(1000);<br /> Loding("AT+CIPMUX=1"); <br /> delay(2000);<br /> sendDebug("AT+CIPSERVER=1,80");<br /> delay(1000);<br /> Loding("AT+CIPSERVER=1,80"); <br /> delay(2000);<br />}<br /><br />void Loding(String state){<br /> if(debug.find("OK"))<br /> {<br /> Serial.println("RECEIVED: OK");<br /> }<br /> else<br /> {<br /> Serial.println("RECEIVED: NG"); <br /> <br /> }<br />}<br /><br />void sendDebug(String cmd)<br />{<br /> Serial.print("SEND: ");<br /> Serial.println(cmd);<br /> debug.println(cmd);<br />} Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-71945249259132973322017-02-12T23:24:54.909+08:002017-02-12T23:24:54.909+08:005110 顯示是使用函式庫,原則上只要你的格式正確,顯示的動作函式庫會幫你做! 先確認你的傳送與接收...5110 顯示是使用函式庫,原則上只要你的格式正確,顯示的動作函式庫會幫你做! 先確認你的傳送與接收端的數據是否能夠正常接收與 print 出來,只要能 print 出來,會出錯大多是丟給5110顯示函式不被接受;再者就是檢查你的 5110 接線與程式定義是不是有錯!<br />覺的有幫助,想找問題就將程式碼丟上來!Ruten.proteushttps://www.blogger.com/profile/01780188542231506811noreply@blogger.comtag:blogger.com,1999:blog-2573408397176312387.post-64019000507848862732017-02-12T23:10:14.174+08:002017-02-12T23:10:14.174+08:00您好,請問您有將+ipd,..後面所讀到的值,顯示在LCD5110的經驗嗎? 我是用一個ESP826...您好,請問您有將+ipd,..後面所讀到的值,顯示在LCD5110的經驗嗎? 我是用一個ESP8266+NANO+DHT22將溫度值傳至另一個ESP8266+NANO+LCD5110,但無法顯示在LCD5110.可以的話,能否幫我看看成是哪裡有問題嗎? 可以的話,我在PO上來,感恩..Anonymoushttps://www.blogger.com/profile/05373209574134904735noreply@blogger.com