找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2593|回復(fù): 6
收起左側(cè)

如何將Arduino的程序移植到ESP8266上?

[復(fù)制鏈接]
ID:16255 發(fā)表于 2022-10-5 15:55 | 顯示全部樓層 |閱讀模式
本帖最后由 mengsiu 于 2022-10-5 23:07 編輯

最近買了一個(gè)TFT顯示屏,在網(wǎng)上找了該屏的驅(qū)動(dòng)例程。有51的,有Arduino的,也有STM32的。

51hei五筆截圖未命名.jpg


已經(jīng)使用51的代碼測(cè)試過,成功點(diǎn)亮。唯一不足的是51的速度太慢,導(dǎo)致刷屏速度也慢。
我現(xiàn)在想試試Arduino的代碼如何。但我手頭上并沒有正式的Arduino板,只有8266的板,加上我也是剛接觸的Arduino,操作并不熟練。
當(dāng)前情況是:
  • 我的8266板是好的;
  • 電腦也安裝好Arduino,加載了8266庫(kù);
  • 曾試過能成功編譯程序,并運(yùn)行;
  • 根據(jù)網(wǎng)上的說法,加載程序后選擇 無(wú)標(biāo)題2.jpg 開發(fā)板,就可以使用ESP8266了。
  • 我找到的例程在Arduino里選擇 無(wú)標(biāo)題.jpg 開發(fā)板時(shí)能正常編譯,但我手頭上并沒有正式的Arduino板,所以并不能驗(yàn)證是否能運(yùn)行;
  • 而選擇開發(fā)板,編譯時(shí)會(huì)報(bào)錯(cuò),如下
    1. c:/users/administrator/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\clear_Screen.ino.cpp.o: in function `loop':
    2. C:\Users\Administrator\Desktop\Demo_UNO_Software_SPI\Example_01_clear_screen\clear_Screen/clear_Screen.ino:56: undefined reference to `_ZN11LCDWIKI_SPIC1Etaaaaaaa'
    3. c:/users/administrator/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: sketch\clear_Screen.ino.cpp.o: in function `__static_initialization_and_destruction_0':
    4. C:\Users\Administrator\Desktop\Demo_UNO_Software_SPI\Example_01_clear_screen\clear_Screen/clear_Screen.ino:59: undefined reference to `_ZN11LCDWIKI_SPIC1Etaaaaaaa'
    5. collect2.exe: error: ld returned 1 exit status
    6. exit status 1
    7. 為開發(fā)板 Generic ESP8266 Module 編譯時(shí)出錯(cuò)。
    復(fù)制代碼

  • 例程如下:
    1. #include <LCDWIKI_GUI.h> //Core graphics library
    2. #include <LCDWIKI_SPI.h> //Hardware-specific library

    3. //paramters define
    4. #define MODEL ST7735S128
    5. #define CS   2
    6. #define CD   4
    7. #define RST  5
    8. #define SDA  12
    9. #define SCK  13
    10. #define LED  0   //if you don't need to control the LED pin,you should set it to -1 and set it to 3.3V

    11. //the definiens of software spi mode as follow:
    12. //if the IC model is known or the modules is unreadable,you can use this constructed function
    13. LCDWIKI_SPI mylcd(MODEL,CS,CD,-1,SDA,RST,SCK,LED); //model,cs,dc,sdo,sda,reset,sck,led

    14. void setup()
    15. {
    16.     mylcd.Init_LCD();
    17.     mylcd.Fill_Screen(0x0000);
    18.     mylcd.Fill_Screen(0xFFFF);
    19. }

    20. void loop()
    21. {   
    22.     mylcd.Fill_Screen(0,0,0);
    23.     mylcd.Fill_Screen(255,255,255);
    24.     mylcd.Fill_Screen(255,0,0);
    25.     mylcd.Fill_Screen(0,255,0);
    26.     mylcd.Fill_Screen(0,0,255);
    27.     delay(3000);
    28.     mylcd.Fill_Screen(0,0,0);
    29.     delay(1000);
    30.     mylcd.Fill_Screen(255,255,255);
    31.     delay(1000);
    32.     mylcd.Fill_Screen(0xF800);
    33.     delay(1000);
    34.     mylcd.Fill_Screen(0x07E0);
    35.    delay(1000);
    36.    mylcd.Fill_Screen(0x001F);
    37.    delay(3000);
    38. }
    復(fù)制代碼


有請(qǐng)大神們幫忙分析一下,問題出現(xiàn)在哪里,為什么編譯不過呢?謝謝。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-10-5 16:59 | 顯示全部樓層
2022-10-05_165429.png
2022-10-05_165441.png


2022-10-05_165801.png


回復(fù)

使用道具 舉報(bào)

ID:16255 發(fā)表于 2022-10-5 22:59 | 顯示全部樓層

謝謝回答,然而并不是。
插件庫(kù)已經(jīng)加載了。(選擇Arduino開發(fā)板可以編譯出來,說明庫(kù)已經(jīng)加載好了)
現(xiàn)在的問題是,選擇8266開發(fā)板后編譯出錯(cuò)。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-10-6 09:42 | 顯示全部樓層
mengsiu 發(fā)表于 2022-10-5 22:59
謝謝回答,然而并不是。
插件庫(kù)已經(jīng)加載了。(選擇Arduino開發(fā)板可以編譯出來,說明庫(kù)已經(jīng)加載好了)
...

你要選支援ESP8266的庫(kù)
Arduino和ESP8266的底層寄存器是不同的
回復(fù)

使用道具 舉報(bào)

ID:16255 發(fā)表于 2022-10-8 16:41 | 顯示全部樓層
lkc8210 發(fā)表于 2022-10-6 09:42
你要選支援ESP8266的庫(kù)
Arduino和ESP8266的底層寄存器是不同的

正是,我已經(jīng)放棄他家的例程了。用別家的庫(kù)成功點(diǎn)亮屏幕了。接著是仔細(xì)分析一下庫(kù)函數(shù),應(yīng)該是有一定可玩性的。
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2022-10-8 17:55 | 顯示全部樓層

首先說法就不對(duì),ESP8266用Arduino的程序不需要移植。
本來想替你生成bin文件以解燃眉之急,奈何那兩個(gè)庫(kù)文件我就是搜索不到,無(wú)法編譯,Arduino我也不熟哦,晚上有空再試試。
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2022-10-10 02:01 | 顯示全部樓層
我下了相應(yīng)的庫(kù)也編譯不通過,和你的一樣的錯(cuò)誤,估計(jì)是程序和庫(kù)配不上或者錯(cuò)誤吧(猜的)。
搜索了一下,沒什么結(jié)果,好像有說結(jié)構(gòu)問題的,或者是鏈接錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表