arduino代码_纯纯小白开发arduino--我的调试经验
arduino 是什么我就不做介紹了。這里的小白并不是說我沒有嵌入式開發經驗而是說從來沒有實際開發過arduino。雖然它在世界范圍內都很流行,可是不知為何國內專業做嵌入式開發的人對它大多都嗤之以鼻。
我對arduino的想法是:”不管黑貓白貓,抓到老鼠就是好貓!“。只要能夠完成功能就可以。
言歸正傳:
在網上買了一塊ttgo生產的 ESP32墨水屏開發板 。從github下載資料,發現它們提供的源碼是arduino的,沒有c語言版本的。而我又比較著急的看效果所以就硬著頭皮開始編寫arduino的代碼了。
https://github.com/zhengzixin/T5-Ink-Screen-Series
下面是我的調試過程,希望對那些剛剛接觸arduino的人有所幫助。
在網查看了基本語法,最主要的就是兩點:配置在setup(),主循環在loop()函數中,支持回調函數。類似單片機的main函數。
2. arduino IDE
語法看完之后就是下載IDE,在arduino官網下載了IDE,按照教程的提示將代碼中庫復制到arduinoIDE的庫目錄中,可是總提示我庫不能用
雖然沒用過,但是分析應該是名字的問題,于是修改了文件名,成功解決了這個問題。
教程又讓我下載esp32fs軟件,之前不明其意,覺得是和webserver相關的,也又沒有管,這也為之后留下了隱患。
用arduino編譯器打開工程,發現不能編譯,不知道到為什么,后來發現教程上說還支持platformIO開發,于是果斷放棄使用arduino編譯器。
platformIO 是VScode中的一個插件,支持很多種開發板。
3.編譯&調試
使用platformIO編輯就簡單多了,打開源碼,在ini文件中修改串口,直接編譯就可以了。可是又出現問題了。
(1) 錯誤1
在程序執行的時候發現報錯:
”Please use Arduino ESP32 Sketch data Upload files“,
這突然讓我想到了沒有按照教程執行安裝“esp32fs”軟件這一步,果斷回頭安裝,雖然到目前為止也不知道這個軟件是干什么的。
點擊ESP32 SKetch ,發現報錯,avr 不支持spiffs,猜測應該是因為編譯器不認識esp32開發板,就在某度上搜索安裝方法。
安裝成功后發現,發現在arduino編譯器上可以選擇esp32開發板了
點擊esp sketch data upload ,也能成功執行了,之前代碼編譯不過去的問題也解決了。
(2)錯誤2
回到platformIO中,繼續調試程序,發現雖然代碼是成功執行了但是并沒有如期的顯示教程中的效果沒有顯示出圖片來,還是有問題。
只能回頭分析代碼,
從代碼中分析可以知道,應該是調用了某一個文件系統中的open函數打開filename文件。此時filename = "/avatar.bmp"。
文件系統肯定是需要存儲介質的,而此時開發板上并沒有SD卡,所以分析這個文件系統應該使用esp32 內部的spiflash,看到這里突然意識到“esp sketch”是干什么的了。這個工具的作用應該就是將數據燒錄到spiflash中。
想到這里回頭查看espfs的說明
https://github.com/me-no-dev/arduino-esp32fs-plugin?github.com在第一句就寫了它的作用了,而我還繞了一大圈子才想到,真是為我的智商捉急啊。
按照usage,將所要顯示的圖片復制到esp32工程中的data文件夾下,執行esp sketch data upload ,成功燒錄。
回到platformIO中,重新燒錄程序,查看現象。
成功!!!
總結:
arduino確實非常簡單,你所能想到的大部分功能在網上都能查到,而它的語法又特別簡單,特別容易上手,對于那些不需要特別優化性能和實現特別復雜的功能的產品來說已經足夠了。
總結
以上是生活随笔為你收集整理的arduino代码_纯纯小白开发arduino--我的调试经验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql workbench_爬虫实例
- 下一篇: for循环延时_前端中的事件循环even