麦斯多鲁特 麦斯多鲁特
关注数: 3 粉丝数: 346 发帖数: 13,680 关注贴吧数: 18
关于Adafruit_GFX的问题。 最近在调试NS2009(TSC2007)电阻触摸屏的库,顺带要安装adafruit sh110x的库。但是在编译SH110X的例程的时候总是报错。OLED是IIC的,报错是SPI的。 In file included from c:\Users\compa\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.cpp:37: c:\Users\compa\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.h:131:77: error: default argument missing for parameter 5 of 'Adafruit_SPITFT::Adafruit_SPITFT(uint16_t, uint16_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t)' 131 | Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc = -1, int8_t mosi, | ~~~~~~~^~~~ c:\Users\compa\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.h:131:61: note: ...following parameter 4 which has a default argument 131 | Adafruit_SPITFT(uint16_t w, uint16_t h, int8_t cs, int8_t dc = -1, int8_t mosi, | ~~~~~~~^~~~~~~ c:\Users\compa\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.h:132:26: error: default argument missing for parameter 6 of 'Adafruit_SPITFT::Adafruit_SPITFT(uint16_t, uint16_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t)' 132 | int8_t sck, int8_t rst , int8_t miso = -1); | ~~~~~~~^~~ c:\Users\compa\Documents\Arduino\libraries\Adafruit_GFX_Library\Adafruit_SPITFT.h:132:38: error: default argument missing for parameter 7 of 'Adafruit_SPITFT::Adafruit_SPITFT(uint16_t, uint16_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t)' 132 | int8_t sck, int8_t rst , int8_t miso = -1); | ~~~~~~~^~~ exit status 1 Compilation error: exit status 1 AI说是有些给了赋值,有些没有导致的。 调用了这些库 #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SH110X.h> Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire); 尝试了屏蔽SPI库还是不行。这个SH1106 i2c的也同样的报错
请问这段程序可以怎么优化 想实现mixly这种效果用最原始的办法实现了8x8二维数组变成,一个8位数组,然后发送到AIP1640驱动芯片点亮8x8LED阵列. void draw_fullmap() {uchar x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8; uint code fullmap[8][8]={{0,1,1,0,1,1,0,0}, {1,1,1,0,1,1,1,0}, {1,1,1,1,1,1,1,0}, {1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,0,0}, {0,0,1,1,1,0,0,0}, {0,0,0,1,0,0,0,0}, {0,0,0,0,0,0,0,0}}; x1=fullmap[0][0]*128; x2=fullmap[0][1]*64; x3=fullmap[0][2]*32; x4=fullmap[0][3]*16; x5=fullmap[0][4]*8; x6=fullmap[0][5]*4; x7=fullmap[0][6]*2; x8=fullmap[0][7]*1; y1=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[1][0]*128; x2=fullmap[1][1]*64; x3=fullmap[1][2]*32; x4=fullmap[1][3]*16; x5=fullmap[1][4]*8; x6=fullmap[1][5]*4; x7=fullmap[1][6]*2; x8=fullmap[1][7]*1; y2=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[2][0]*128; x2=fullmap[2][1]*64; x3=fullmap[2][2]*32; x4=fullmap[2][3]*16; x5=fullmap[2][4]*8; x6=fullmap[2][5]*4; x7=fullmap[2][6]*2; x8=fullmap[2][7]*1; y3=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[3][0]*128; x2=fullmap[3][1]*64; x3=fullmap[3][2]*32; x4=fullmap[3][3]*16; x5=fullmap[3][4]*8; x6=fullmap[3][5]*4; x7=fullmap[3][6]*2; x8=fullmap[3][7]*1; y4=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[4][0]*128; x2=fullmap[4][1]*64; x3=fullmap[4][2]*32; x4=fullmap[4][3]*16; x5=fullmap[4][4]*8; x6=fullmap[4][5]*4; x7=fullmap[4][6]*2; x8=fullmap[4][7]*1; y5=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[5][0]*128; x2=fullmap[5][1]*64; x3=fullmap[5][2]*32; x4=fullmap[5][3]*16; x5=fullmap[5][4]*8; x6=fullmap[5][5]*4; x7=fullmap[5][6]*2; x8=fullmap[5][7]*1; y6=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[6][0]*128; x2=fullmap[6][1]*64; x3=fullmap[6][2]*32; x4=fullmap[6][3]*16; x5=fullmap[6][4]*8; x6=fullmap[6][5]*4; x7=fullmap[6][6]*2; x8=fullmap[6][7]*1; y7=x1+x2+x3+x4+x5+x6+x7+x8; x1=fullmap[7][0]*128; x2=fullmap[7][1]*64; x3=fullmap[7][2]*32; x4=fullmap[7][3]*16; x5=fullmap[7][4]*8; x6=fullmap[7][5]*4; x7=fullmap[7][6]*2; x8=fullmap[7][7]*1; y8=x1+x2+x3+x4+x5+x6+x7+x8; AIP1640_draw(0,y1); AIP1640_draw(1,y2); AIP1640_draw(2,y3); AIP1640_draw(3,y4); AIP1640_draw(4,y5); AIP1640_draw(5,y6); AIP1640_draw(6,y7); AIP1640_draw(7,y8); } 但是重复代码太多,x1~x8要多次复用,不知道该如何循环。
1 下一页