问题描述
我正在尝试从本地服务器获取数据并将其打印在P10点矩阵Led上。 首先,我尝试从服务器和程序代码中获取数据,效果很好。 然后,我尝试另一个程序,并将任何纹理成功写入P10。 之后,我尝试合并程序并运行脚本。 这是代码。
/**
BasicHTTPClient.ino
Created on: 24.05.2015
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
//P10 Kutuphanesi
#include <SPI.h>
#include <DMD2.h>
#include <fonts/SystemFont5x7.h>
//P10 Kutuphanesi
//P10 Tanimlamalari
#define ESP8266
#define pin_A 16
#define pin_B 12
#define pin_sclk 0
#define pin_noe 15
#define panel_width 1
#define panel_heigh 1
SPIDMD dmd(panel_width,panel_heigh,pin_noe,pin_A,pin_B,pin_sclk); // DMD controls the entire display
//P10 Tanimlamalari
ESP8266WiFiMulti WiFiMulti;
void setup() {
Serial.begin(115200);
// Serial.setDebugOutput(true);
Serial.println();
Serial.println();
Serial.println();
Serial.printf("Connecting");
Serial.flush();
delay(4000);
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("XXX","XXX");
//P10 Setup
dmd.beginNoTimer();
dmd.setBrightness(255);
dmd.selectFont(SystemFont5x7);
dmd.begin();
//P10 Setup
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
Serial.print("[HTTP] begin...\n");
if (http.begin(client,"http://XX.XX.XX.XX/XXX")) { // HTTP
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n",httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
String payload = http.getString();
Serial.println(payload);
//P10 Ekrana Yansitma
DMD_TextBox Box(dmd,2,4,32,16);
Box.print(payload); //print the led pannel
//P10 Ekrana Yansitma
}
} else {
Serial.printf("[HTTP] GET... Failed,error: %s\n",http.errorToString(httpCode).c_str());
}
http.end();
} else {
Serial.printf("[HTTP} Unable to connect\n");
}
}
delay(10000);
}
运行代码后,程序将运行并将数据成功写入P10 led矩阵10-20秒。但是几秒钟后,它崩溃了。 这是crach代码和异常解码器代码。
09:08:07.953 -> Exception (0):
09:08:07.953 -> epc1=0x40204fe0 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
09:08:07.988 ->
09:08:07.988 -> >>>stack>>>
09:08:07.988 ->
09:08:07.988 -> ctx: cont
09:08:07.988 -> sp: 3ffff9d0 end: 3fffffc0 offset: 0190
09:08:07.988 -> 3ffffb60: 3fffc200 3ffee458 3ffee3f4 402049cd
09:08:07.988 -> 3ffffb70: 3ffef254 3ffef264 3fffc248 4000050c
09:08:07.988 -> 3ffffb80: 400043e6 00000030 00000016 ffffffff
09:08:07.988 -> 3ffffb90: 400044ab 3fffc718 3ffffc80 08000000
09:08:07.988 -> 3ffffba0: 60000200 08000000 08000000 00000000
09:08:08.024 -> 3ffffbb0: 0000ffff 00042035 00002035 003fd000
09:08:08.024 -> 3ffffbc0: 4023f9b0 0000049c 003fd000 00000030
09:08:08.024 -> 3ffffbd0: 3ffee26e ff3fffff 00000000 fcffffff
09:08:08.024 -> 3ffffbe0: 02000000 cfffffff 00000000 00000190
09:08:08.024 -> 3ffffbf0: 7d28de69 40222b64 3fFeed24 00000030
09:08:08.024 -> 3ffffc00: feefeffe feefeffe feefeffe feefeffe
09:08:08.024 -> 3ffffc10: feefeffe feefeffe feefeffe feefeffe
09:08:08.024 -> 3ffffc20: feefeffe 80af1999 feefeffe feefeffe
09:08:08.056 -> 3ffffc30: ffffffd3 00000000 40240000 ffffff1a
09:08:08.056 -> 3ffffc40: 4023b867 00000017 00000018 42d60000
09:08:08.056 -> 3ffffc50: 00000d68 402382c2 00000001 00000001
09:08:08.056 -> 3ffffc60: 00000000 4000444e 00000005 3ffffda0
09:08:08.056 -> 3ffffc70: 00000002 40105c93 00000001 60000200
09:08:08.056 -> 3ffffc80: 00000002 4000410f 00001001 00000005
09:08:08.056 -> 3ffffc90: 3fffc718 40004a3c 000003fd 4023f9b0
09:08:08.090 -> 3ffffca0: 3fffc718 40105f24 000003fd 401004bc
09:08:08.090 -> 3ffffcb0: 402335e0 000003fd 00000001 402335c9
09:08:08.090 -> 3ffffcc0: 3ffef954 402336b3 3ffef4b4 0000049c
09:08:08.090 -> 3ffffcd0: 000003fd 3ffffda0 3ffef4b4 40233696
09:08:08.090 -> 3ffffce0: ffffff00 55aa55aa 00000d90 00000020
09:08:08.090 -> 3ffffcf0: 00000020 000000fa 000000fa aa55aa55
09:08:08.090 -> 3ffffd00: 000003ff 40233b96 3ffef4b4 3ffef4b4
09:08:08.090 -> 3ffffd10: 00000001 3ffed5c4 00000001 00000001
09:08:08.123 -> 3ffffd20: 40100e69 00000001 3ffef4c4 40233d94
09:08:08.123 -> 3ffffd30: 3ffee080 3ffef4b4 00000001 3ffffda0
09:08:08.123 -> 3ffffd40: 3ffffdc0 3ffef4eb 00000d90 00000020
09:08:08.123 -> 3ffffd50: 3ffef574 3ffffe01 00000001 40233e66
09:08:08.123 -> 3ffffd60: 3ffffda0 4023f610 3ffee410 3ffee4f4
09:08:08.123 -> 3ffffd70: 3ffef8b4 3ffffdc0 3ffef4b4 40233e35
09:08:08.123 -> 3ffffd80: 3ffef4b4 40233e9c 00000001 00000000
09:08:08.157 -> 3ffffd90: 40201ecc 00000001 feefeffe 40201ea8
09:08:08.157 -> 3ffffda0: 00000000 3ffe8616 3ffffe50 4020f1bc
09:08:08.157 -> 3ffffdb0: feefeffe feefeffe feefeffe feefeffe
09:08:08.157 -> 3ffffdc0: feefef00 0000000a fe3020fe feefeffe
09:08:08.157 -> 3ffffdd0: feefeffe feefeffe feefeffe feefeffe
09:08:08.157 -> 3ffffde0: 402332b2 3ffee4b4 3ffee410 00000001
09:08:08.157 -> 3ffffdf0: 40234497 feefeffe feefeffe feefeffe
09:08:08.191 -> 3ffffe00: 3fFeed24 40201f34 3ffffe30 402048d0
09:08:08.191 -> 3ffffe10: 000000fe 3ffee410 00000006 40201a65
09:08:08.191 -> 3ffffe20: 3fffc200 3ffee458 3ffee3f4 402049cd
09:08:08.191 -> 3ffffe30: 3ffef250 3ffef260 3ffef270 3ffef280
09:08:08.191 -> 3ffffe40: 3ffee478 3ffe8304 00000000 40205001
09:08:08.191 -> 3ffffe50: 3fffff0a 401001e8 00000020 40100204
09:08:08.191 -> 3ffffe60: 3fffff00 0000003f 3fffc248 4000050c
09:08:08.191 -> 3ffffe70: 3ffee3e8 00000030 00001388 ffffffff
09:08:08.226 -> 3ffffe80: 40000fb0 00000040 00000521 3fffc200
09:08:08.226 -> 3ffffe90: 00000561 ffffffff 00000020 3ffee4f4
09:08:08.226 -> 3ffffea0: 3fffdad0 00000000 3ffee4b4 402011ae
09:08:08.226 -> 3ffffeb0: 3ffee3f4 3ffee458 3ffee4f4 00000030
09:08:08.226 -> 3ffffec0: 3fffff0a 00000008 3ffee478 4020c9e8
09:08:08.226 -> 3ffffed0: 00000000 400042db 00000008 0000000a
09:08:08.226 -> 3ffffee0: 000008b0 3ffef47c 0000049c 003fe000
09:08:08.226 -> 3ffffef0: 000008a0 feefeffe feefeffe 3ffee4f4
09:08:08.259 -> 3fffff00: 000008c0 40201be7 00000020 40100b3c
09:08:08.259 -> 3fffff10: 3ffe861d 4020b87c 00000020 3ffee4f4
09:08:08.259 -> 3fffff20: 3ffee588 3ffee3f4 00000020 40100b3c
09:08:08.259 -> 3fffff30: 3ffee450 00000001 0000000f 4010041d
09:08:08.259 -> 3fffff40: 3fffdad0 3ffee3f4 00000000 40100b85
09:08:08.259 -> 3fffff50: 3ffef24c 3ffef25c 3ffef26c 3ffef27c
09:08:08.259 -> 3fffff60: 3fffdad0 3ffee3f4 3ffee3f4 40204950
09:08:08.292 -> 3fffff70: 401002ed 3ffee3f4 3ffee450 3ffee4f4
09:08:08.292 -> 3fffff80: 3ffee458 3ffee3f4 3ffee454 402050d0
09:08:08.292 -> 3fffff90: 3fffdad0 00000000 3ffee3f4 3ffee4f4
09:08:08.292 -> 3fffffa0: 3fffdad0 00000000 3ffee4b4 40206e28
09:08:08.292 -> 3fffffb0: feefeffe feefeffe 3ffe84e8 40100dc1
09:22:47.342 -> <<<stack<<<
09:22:47.342 ->
09:22:47.342 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
09:22:47.342 ->
09:22:47.342 -> ets Jan 8 2013,rst cause:2,boot mode:(3,6)
09:22:47.342 ->
09:22:47.342 -> load 0x4010f000,len 3584,room 16
09:22:47.342 -> tail 0
09:22:47.342 -> chksum 0xb0
09:22:47.342 -> csum 0xb0
09:22:47.342 -> v2843a5ac
09:22:47.376 -> ~ld
Exception 0: Illegal instruction
PC: 0x40204fe0: _Unwind_Find_FDE at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 1061
EXCVADDR: 0x00000000
Decoding stack results
0x402049cd: search_object at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 750
0x40100e69: timer1Interrupt() at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_waveform.cpp line 310
0x40201ecc: DMDFrame::DMDFrame(unsigned char,unsigned char) at C:\Users\ab107016\Documents\Arduino\libraries\DMD2\DMDFrame.cpp line 34
0x40201ea8: DMDFrame::DMDFrame(unsigned char,unsigned char) at C:\Users\ab107016\Documents\Arduino\libraries\DMD2\DMDFrame.cpp line 28
0x4020f1bc: tcp_output at core/tcp_out.c line 1378
0x40201f34: DMDFrame::setPixel(unsigned int,unsigned int,DMDGraphicsMode) at C:\Users\ab107016\Documents\Arduino\libraries\DMD2\DMDFrame.cpp line 75
0x402048d0: add_fdes at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 699
0x40201a65: DMDFrame::drawChar(int,int,char,DMDGraphicsMode,unsigned char const*) at C:\Users\ab107016\Documents\Arduino\libraries\DMD2\DMD2_Text.cpp line 78
0x402049cd: search_object at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 750
0x40205001: _Unwind_Find_FDE at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 1059
0x401001e8: timer0_isr_handler(void*) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_timer.cpp line 84
0x40100204: timer0_isr_handler(void*) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_timer.cpp line 89
0x402011ae: SPIClass::setHwCs(bool) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\SPI\SPI.cpp line 124
0x4020c9e8: tcp_receive at core/tcp_in.c line 1859
0x40201be7: DMD_TextBox::clear() at C:\Users\ab107016\Documents\Arduino\libraries\DMD2\DMD2_TextBox.cpp line 126
0x40100b3c: realloc(void*,size_t) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 840
0x4020b87c: dns_recv at core/dns.c line 1293
0x40100b3c: realloc(void*,size_t) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 840
0x4010041d: __digitalWrite(uint8_t,uint8_t) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring_digital.cpp line 88
0x40100b85: realloc(void*,size_t) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 894
0x40204950: add_fdes at /workdir/repo/gcc/libgcc/unwind-dw2-fde.c line 721
0x401002ed: timer0_attachInterrupt(timercallback) at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_timer.cpp line 100
0x402050d0: __cvt at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_float.c line 111
0x40206e28: _strtod_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdlib/strtod.c line 1121
0x40100dc1: timer1Interrupt() at C:\Users\ab107016\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_waveform.cpp line 267
我意识到,当我删除dmd.begin();
时,程序不会崩溃,但不会写入led矩阵。
有人可以帮助我吗?谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)