【RP2040】香瓜樹莓派RP2040之新建工程

本文最后修改時間:2022年09月05日 11:02

一、本節簡介

本節介紹如何新建一個自己的工程。

二、實驗平臺

1、硬件平臺

1)樹莓派pico開發板

①樹莓派pico開發板*2

②micro usb數據線*2

2)電腦

2、軟件平臺

1)VS CODE

三、版權聲明

1)作者:甜甜的大香瓜

2)聲明:喝水不忘挖井人,轉載請注明出處。

3)糾錯/業務合作:897503845@qq.com

4)香瓜嵌入式之樹莓派群:512598061

5)本文出處:原創連載資料《簡單粗暴學樹莓派》

6)完整開源資料下載地址(電腦端打開):

opengua.taobao.com

四、實驗前提

1、在進行本文步驟前,請先閱讀以下章節:

1)《簡單粗暴學樹莓派》的“第一章至第二章”章節?

2)《Raspberry Pico C/C++ SDK Setup and Example Project in under 30 min!》(外網視頻):

https://www.youtube.com/watch?v=BAoTBg8MJJ4&t=1332s

2、在進行本文步驟前,請先實現以下章節:

1)《簡單粗暴學樹莓派》的《香瓜樹莓派pico之搭建開發環境(windows)》章節。

2)《簡單粗暴學樹莓派》的《香瓜樹莓派pico之仿真調試》章節。

五、基礎知識

暫無

六、實驗步驟

1、實現新建工程并可編譯

1)在“D:\work”新建一個文件夾“GUA_PICO_PROJECT”

2)打開兩個VS CODE,左邊一個加載pico例程,右邊一個打開便是無工程的。

3)選擇剛剛建好的工程文件夾

4)新建一個pico_sdk_import.cmake,并把左邊工程的pico_sdk_import.cmake內容復制過來,并保存(ctrl+S)。

5)新建一個CMakeLists.txt,并把左邊工程的CMakeLists.txt部分內容復制過來,并保存(ctrl+S)。

注意藍色箭頭需要改成自己的工程目錄。下一步會建GUA_CODE的工程目錄。

6)新建工程目錄

7)在GUA_CODE文件夾下,新建兩個文件

注意“main.c”的“.c”不能漏

8)復制CMakeLists.txt(不要與前面的CMakeLists.txt混淆)的內容并修改文件夾和文件的名稱,并保存(ctrl+S)。

9)編輯main.c文件,寫入代碼,并保存(ctrl+S)

#include "pico/stdlib.h"

int main()

{

??? gpio_init(25);

??? gpio_set_dir(25, GPIO_OUT);

??? while (true) {

??????? gpio_put(25, 1);

??????? sleep_ms(250);

??????? gpio_put(25, 0);

??????? sleep_ms(250);

??? }

??? return 1;

}

10)按“ctrl+shift+p”,查找并選擇“CMake:Configure”。

11)選擇編譯器

12)編譯,即可生成uf2

13)下載進pico里看是否led閃爍正常,以此驗證步驟是否做成功。

至此新建的工程即可正常編譯,接下來要配置仿真調試的功能。

2、實現新建工程的仿真調試

1)下載openocd編譯文件并放到工程路徑下

2)下載picoprobe固件進pico

①按著pico的BOOTSEL按鍵,插入USB,松開按鍵。等待電腦識別pico為一個盤。

②將picoprobe固件拖拽進pico識別的盤里,會自動關閉,即下載成功。

3)VS debug環境配置

①將D:\GUA_PICO\pico-examples目錄下的.vscode文件夾復制到D:\work\GUA_PICO_PROJECT

②修改.vscode文件夾里的launch.json

{

??? // Use IntelliSense to learn about possible attributes.

??? // Hover to view descriptions of existing attributes.

??? // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387

??? "version": "0.2.0",

??? "configurations": [

??????? {

??????????? "name": "Cortex Debug",

??????????? "cwd": "${workspaceRoot}",

??????????? "executable": "${workspaceRoot}/build/GUA_CODE/GUA_CODE.elf",

??????????? "request": "launch",

??????????? "type": "cortex-debug",

??????????? "servertype": "openocd",

??????????? "device": "Pico2040",

?? ?????????"runToMain": true,

??????????? "configFiles": ["interface/picoprobe.cfg", "target/rp2040.cfg"],

??????????? "searchDir": ["D:/work/GUA_PICO_PROJECT/openocd/tcl"],

??????????? "svdFile": "D:/work/GUA_PICO_PROJECT/pico-sdk/src/rp2040/hardware_regs/rp2040.svd",

??????? }

??? ]

}

③將D:\GUA_PICO\pico-examples目錄下的pico-sdk文件夾復制到D:\work\GUA_PICO_PROJECT

④修改Cortex-Debug插件的配置項目

添加如下路徑(根據自己openocd.exe所在路徑),修改后關閉,記得點保存(ctrl+S)

{

? ? "cmake.configureEnvironment": {

? ? ? ? "PICO_SDK_PATH": "D:\\work\\GUA_PICO_PROJECT\\pico-sdk"

? ? },

? ? "cmake.generator": "NMake Makefiles",

? ? "cmake.configureOnOpen": true,

? ?

"cortex-debug.openocdPath":"D:/work/GUA_PICO_PROJECT/openocd/openocd.exe",

? ? "cortex-debug.gdbPath": "arm-none-eabi-gdb",

}

⑤編譯,仿真。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40201.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40201.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】一文帶你初識C++繼承

食用指南:本文在有C基礎的情況下食用更佳 🍀本文前置知識: C類 ??今日夜電波:napori—Vaundy 1:21 ━━━━━━?💟──────── 3:23 …

CSS中的calc()函數有什么作用?

聚沙成塔每天進步一點點 ? 專欄簡介? CSS中的calc()函數及其作用? 作用? 示例1. 動態計算寬度:2. 響應式布局:3. 自適應字體大小:4. 計算間距: ? 寫在最后 ? 專欄簡介 前端入門之旅:探索Web開發的奇妙世界 記得點…

KCC@廣州開源讀書會廣州開源建設討論會

親愛的開源讀書會朋友們, 在下個周末我們將舉辦一場令人激動的線下讀書會,探討兩本引人入勝的新書《只是為了好玩》和《開源之迷》。作為一個致力于推廣開源精神和技術創新的社區,這次我們還邀請了圈內大咖前來參與,會給大家提供一…

軟件測試技術之單元測試—工程師 Style 的測試方法(3)

如何設計單元測試? 單元測試設計方法 單元測試用例,和普通測試用例的設計,沒有太多不同,常見的就是等價類劃分、邊界值分析等。而測試用例的設計其實也是開發者應該掌握的基本技能。 等價類劃分 把所有輸入劃分為若干分類&…

[UE4][C++]使用qrencode動態生成二維碼

一、使用CMake編譯x64版本qrencode 下載地址 GitHub - fukuchi/libqrencode: A fast and compact QR Code encoding libraryA fast and compact QR Code encoding library. Contribute to fukuchi/libqrencode development by creating an account on GitHub.https://github.…

2023/08/13_______JVM(CG)垃圾回收 算法(復制算法,標記清除,標記清除壓縮)

JVM GC算法 復制算法 1,每一次GC都會將伊甸(Eden)活的對象移到幸存區中:一旦Eden區被GC后 就會是空 只要有內容就是from區 誰空誰是to區 內存會從 伊甸->幸存區to->幸存from(這個時候to和from交換區域&#xf…

EXPLAIN使用分析

系列文章目錄 文章目錄 系列文章目錄一、type說明二、MySQL中使用Show Profile1.查看當前profiling配置2.在會話級別修改profiling配置3.查看profile記錄4.要深入查看某條查詢執行時間的分布 一、type說明 我們只需要注意一個最重要的type 的信息很明顯的提現是否用到索引&…

kafka線上問題優化

如何防止消息丟失 生產者: 使用同步發送把ack設成1或者all(非0,0可能會出現消息丟失的情況),并且設置同步的分區數>2 消費者:把自動提交改成手動提交 如何防止重復消費 在防止消息丟失的方案中&#…

leetcode 力扣刷題 數組交集(數組、set、map都可實現哈希表)

數組交集 349. 兩個數組的交集排序+雙指針數組實現哈希表unordered_setunordered_map 350. 兩個數組的交集Ⅱ排序 雙指針數組實現哈希表unordered_map 349. 兩個數組的交集 題目鏈接:349. 兩個數組的交集 題目內容如下,理解題意&#xff1a…

梯度爆炸和梯度消失的原因以及解決方法

文章目錄 1、原因:2、解決方法 1、原因: 梯度消失和梯度爆炸的根本原因是因為在反向傳播過程中,使用鏈式法則計算時,累積相乘效應導致梯度過大或者過小主要原因有: 1)激活函數:例如sigmoid或者…

聊聊火車的發展

目錄 1.火車的概念 2.火車的發展歷史 3.火車對戰爭的影響 4.火車對人們出行造成的影響 1.火車的概念 火車是一種由機械動力驅動的陸上交通工具,通常用來運輸人員和貨物。它由一列或多列的連接在一起的車廂組成,有軌道作為其行駛的基礎,并通…

重建與突破,探討全鏈游戲的現在與未來

全鏈游戲(On-Chain Game)是指將游戲內資產通過虛擬貨幣或 NFT 形式記錄上鏈的游戲類型。除此以外,游戲的狀態存儲、計算與執行等皆被部署在鏈上,目的是為用戶打造沉浸式、全方位的游戲體驗,超越傳統游戲玩家被動控制的…

mysql面試

基礎篇 通用語法及分類 DDL: 數據定義語言,用來定義數據庫對象(數據庫、表、字段)DML: 數據操作語言,用來對數據庫表中的數據進行增刪改DQL: 數據查詢語言,用來查詢數據庫中表的記錄DCL: 數據控制語言,用…

php正則替換文章的圖片

要使用正則表達式替換文章中的圖片鏈接,可以按照以下步驟進行操作: 1. 獲取文章內容:首先,你需要獲取包含圖片鏈接的文章內容。你可以從文件中讀取文章,或者從數據庫中檢索文章內容。 2. 使用正則表達式匹配圖片鏈接…

JAVA編程學習筆記

常用代碼、特定函數、復雜概念、特定功能……在學習編程的過程中你會記錄下哪些內容?快來分享你的筆記,一起切磋進步吧! 一、常用代碼 在java編程中常用需要儲備的就是工具類。包括封裝的時間工具類。http工具類,加解密工具類&am…

day17 | 110.平衡二叉樹、257. 二叉樹的所有路徑、404.左葉子之和

目錄: 解題及思路學習 110.平衡二叉樹 https://leetcode.cn/problems/balanced-binary-tree/ 給定一個二叉樹,判斷它是否是高度平衡的二叉樹。 本題中,一棵高度平衡二叉樹定義為: 一個二叉樹每個節點 的左右兩個子樹的高度差…

Linux學習之firewallD

systemctl status firewalld.service查看一下firewalld服務的狀態,發現狀態是inactive (dead)。 systemctl start firewalld.service啟動firewalld,systemctl status firewalld.service查看一下firewalld服務的狀態,發現狀態是active (runni…

okcc呼叫系統導入呼叫名單/客戶資料的數量上限,okcc通話聲音小有哪幾種處理辦法?

系統導入呼叫名單/客戶資料的數量上限 呼叫名單一次最多十萬 客戶資料一次最多五萬 通話聲音小有哪幾種處理辦法? 1、IP話機:通過話機上的音量調節按鈕來進行調節。 2、模擬話機:修改語音網關上的增益來實現。 “ 往IP增益”表示電話呼入…

stable diffusion 運行時報錯: returned non-zero exit status 1.

運行sh run.sh安裝stable diffusion時報錯:ImportError: cannot import name builder from google.protobuf.internal (stable-diffusion-webui/venv/lib/python3.8/site-packages/google/protobuf/internal/__init__.py) 原因:python版本過低&#xff0…

ubuntu16.04制作本地apt源離線安裝

一、首先在有外網的服務器安裝需要安裝的軟件,打包deb軟件。 cd /var/cache/apt zip -r archives.zip archives sz archives.zip 二、在無外網服務器上傳deb包,并配置apt源。 1、上傳deb包安裝lrzsz、unzip 用ftp軟件連接無外網服務器協議選擇sftp…