衡阳派盒市场营销有限公司

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>將Arduino庫與Raspberry Pi Pico C/C++ SDK一起使用

將Arduino庫與Raspberry Pi Pico C/C++ SDK一起使用

2023-06-15 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

除了價格低廉、I/O 選項和 PIO 范圍廣泛之外,Pico 的一大優(yōu)點是 C/C++ SDK。Raspberry Pi 的人們在創(chuàng)建一個易于使用的編程環(huán)境方面做得很好,但如果你想要的話,仍然可以讓你接近硬件。更不用說全面的文檔了。

使用 C/C++ SDK 的一個缺點是缺少庫。Raspberry PI 論壇上的用戶@martinkooij編制了一份可用庫列表,雖然數量在增加,但與使用 Arduino IDE 時可用的大量庫相比還差得遠。僅Arduino 參考文檔就列出了 4000 多個庫。

如果您的傳感器、顯示器或其他外圍設備不存在 Pico C/C++ SDK 庫,那么很可能存在 Arduino 庫。

在本教程中,我將引導您完成使用 pico-arduino-compat 將 Arduino 庫添加到您的 Pico C/C++ SDK 項目的過程。

什么是 pico-arduino-compat?

pico-arduino-compat 是一個兼容層,它允許(某些)Arduino 庫不加修改地用于使用 Pico C/C++ SDK 編寫的項目中。

對于 Arduino 官方文檔中列出的每個 Arduino 庫(超過 4000 個),都有一個相應的 cmake 接口庫,可以直接在 Pico C/C++ SDK 項目中使用。

pico-arduino-compat 兼容層利用earlephilhower 出色的RP2040 Arduino 內核來完成大部分繁重的工作。

兼容性

顯然,并非所有 Arduino 庫都可以與 Pico/RP2040 一起使用。那些依賴 AVR 或 ESP 硬件的特定功能的就是一個很好的例子。在 Arduino 官方參考文檔中列出的 4190 個庫中,其中 1730 個針對 Pico C/C++ SDK成功編譯(41%)。

我懷疑其中很大一部分由于依賴于其他庫而無法編譯。這可以通過調整CMakeLists.txt文件輕松解決,但這是一個手動過程,僅針對少數庫完成。這是一個進展中的工作。

安裝 pico-arduino-compat

1.克隆存儲庫

?

git clone https://github.com/fhdm-dev/pico-arduino-compat.git

?

2.初始化arduino-pico子模塊

?

cd pico-arduino-compat
git submodule update --init arduino-compat/arduino-pico

?

找到庫 ID 和 cmake 目標名稱

您需要您計劃使用的 Arduino 庫的確切庫名稱。如果您不知道,可以在官方Arduino 文檔中找到庫的名稱。

現在轉到pico-arduino-compat 庫表并按 Arduino 庫名稱搜索庫。

找到它后,請查看 Compile 列(右起第二個)。如果該列的值為 OK,則該庫已通過基本編譯測試,如果幸運的話,它無需任何修改即可與 Pico C/C++ SDK 一起使用。

記下 ID 和 CMake 目標名稱。

初始化庫

每個 Arduino 庫存儲庫都作為一個子模塊存儲在 pico-arduino-compat 存儲庫中。默認情況下,git 會將子模塊目錄留空,直到它被初始化。要初始化它(以及它所依賴的 Arduino 庫的子模塊),請執(zhí)行以下操作:

1. 將目錄更改為 libs/,其中 是您在上面記下的 ID。從現在開始,我們將此目錄稱為庫目錄。

例如。對于 Arduino LiquidCrystal 庫,ID 是液晶

?

cd libs/liquidcrystal

?

2. 初始化子模塊。

linux 上只需運行以下腳本:

?

./init.sh

?

在其他操作系統(tǒng)上,只需在init.sh腳本中找到 git 命令并從命令行運行它。

將 Arduino 庫添加到您的項目中

在項目的CMakeLists.txt文件中,將庫目錄添加為子目錄

例如。

?

add_subdirectory(/home/fhdm-dev/pico/pico-arduino-compat/libs/liquidcrystal build-pac-liquidcrystal)

?

注意:傳遞給 add_subdirectory 的第二個參數的值并不重要。它只需要在您的項目中是獨一無二的。我傾向于使用 build_ 其中 是庫的 cmake 目標名稱。

現在將 CMake 目標添加到CMakeLists.txt文件中的 target_link_libraries

例如。

?

target_link_libraries(somename
  pac-liquidcrystal
)

?

注意:cmake 目標名稱都以pac-開頭,以幫助確保唯一性。

完畢。您現在應該能夠在您的 Pico C/C++ SDK 項目中使用該庫。

示例:Adafruit SSD1306

假設我們想在我們的項目中使用 Adafruit SSD1306 庫。首先,我們在pico-arduino-compat 庫表中查找條目,發(fā)現它的 ID 為adafruit-ssd1306 ,cmake 目標名稱為pac-adafruit-ssd1306 。

您還會注意到 Test 列顯示的值為Passed 。這意味著該庫已經在真實設備上進行了測試,并且至少有一些功能可以工作。

將目錄更改為庫目錄并列出其內容

?

cd libs/adafruit-ssd1306
ls

?

您看到的 Adafruit_SSD1306 目錄作為 git 子模塊包含在 pico-arduino-compat 存儲庫中,最初為空。

現在我們通過運行init.sh腳本來初始化子模塊,如下所示:

?

./init.sh

?

您可能會注意到,這也會初始化它所依賴的 adafruit-gfx-library 的子模塊,進而初始化 adafruit-busio 庫。

注意:在非 Linux 操作系統(tǒng)上,您可能需要通過手動運行 git 命令來初始化子模塊。有關詳細信息,請參閱init.sh的內容。

現在需要修改我們項目的主CMakeLists.txt文件,添加 add_subdirectory 行并將庫添加到 target_link_libraries。

例如:

?

cmake_minimum_required(VERSION 3.12)

include(pico_sdk_import.cmake)

project(adafruit-ssd1306-examples)

pico_sdk_init()

add_subdirectory(/home/fhdm-dev/pico/pico-arduino-compat/libs/adafruit-ssd1306 build_pac-adafruit-ssd1306)

add_executable(text
    main.cpp
)

target_link_libraries(text
    pac-adafruit-ssd1306
)

# create map/bin/hex file etc.
pico_add_extra_outputs(text)

?

完畢。

有關工作示例,請參閱adafruid-ssd1306/pico-sdk-examples 。如果您編譯示例并將 graphics.uf2 文件復制到您的 Pico,它應該如下所示:

poYBAGNh1JyACjARAAP7p-wiD0g154.png

示例:LiquidCrystal

官方 Arduino LiquidCrystal 庫。有關示例代碼,請參閱液晶/pico-sdk-examples 。

poYBAGNh1KaAU7nyAAPaa5YXn60542.jpg

示例:字母和數字七段顯示庫

有關示例代碼,請參閱letters-and-numbers-seven-segment-display-library/pico-sdk-examples 。

從 C 代碼中使用 Arduino 庫

以下是一些圍繞 Arduino 庫的示例包裝器,允許從 C 代碼中使用它們。

pico-adafruit-ssd1306

皮克官方液晶

結論

雖然最好使用專門為 Pico C/C++ SDK 編寫的庫,但與 Arduino 生態(tài)系統(tǒng)可用的庫相比,庫的選擇是有限的。

對于那些只想讓某些東西快速運行的時候,Arduino 庫可能就足夠了。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
百家乐官网怎样发牌| 百家乐注码投注论坛| 真人游戏机| 百家乐官网视频网络游戏| 澳门百家乐赢钱技术| 六合彩现场| 最新百家乐官网网评测排名 | 澳门百家乐官网自杀| 战神百家乐娱乐| 德州扑克荷官培训| 百家乐官网澳门赌| 大发888娱乐城客户端lm0| 武汉百家乐官网庄闲和| 百家乐翻天片尾曲| 增城市| 百家乐网投注| 真人百家乐官网出千| 大集汇百家乐官网的玩法技巧和规则| 大发888论坛爱好| 新锦江百家乐官网赌场娱乐网规则| 大发888娱乐城dafa888dafa8| 海王星百家乐官网的玩法技巧和规则| 大发888娱乐城在线存款| 下三元八运24山详解| 百家乐纸牌赌博| 澳门百家乐官网怎么赢钱| 大发888怎么注册| 百家乐官网知道| 皇冠备用网址| 百家乐佛牌| 百家乐官网网上投注代理商| 太阳城洋伞| 百家乐官网长胜攻略| 网络棋牌频道| 圣安娜百家乐官网包杀合作| 德州扑克保险| 百家乐筹码多少钱| gt百家乐官网平台| 大发888娱乐总代理qq| 百家乐官网软件代理打| 苏尼特右旗|