【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.mzph.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@广州开源读书会广州开源建设讨论会

亲爱的开源读书会朋友们, 在下个周末我们将举办一场令人激动的线下读书会,探讨两本引人入胜的新书《只是为了好玩》和《开源之迷》。作为一个致力于推广开源精神和技术创新的社区,这次我们还邀请了圈内大咖前来参与,会给大家提供一…

[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.火车的发展历史 3.火车对战争的影响 4.火车对人们出行造成的影响 1.火车的概念 火车是一种由机械动力驱动的陆上交通工具,通常用来运输人员和货物。它由一列或多列的连接在一起的车厢组成,有轨道作为其行驶的基础,并通…

重建与突破,探讨全链游戏的现在与未来

全链游戏(On-Chain Game)是指将游戏内资产通过虚拟货币或 NFT 形式记录上链的游戏类型。除此以外,游戏的状态存储、计算与执行等皆被部署在链上,目的是为用户打造沉浸式、全方位的游戏体验,超越传统游戏玩家被动控制的…

mysql面试

基础篇 通用语法及分类 DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用…

JAVA编程学习笔记

常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧! 一、常用代码 在java编程中常用需要储备的就是工具类。包括封装的时间工具类。http工具类,加解密工具类&am…

Linux学习之firewallD

systemctl status firewalld.service查看一下firewalld服务的状态,发现状态是inactive (dead)。 systemctl start firewalld.service启动firewalld,systemctl status firewalld.service查看一下firewalld服务的状态,发现状态是active (runni…

股票交易c接口包含哪些调用函数?

股票交易的C接口中可能包含多个调用函数,具体的调用函数取决于所使用的接口规范和交易所的要求。接下来看看下面是一些可能常见的股票交易C接口调用函数的示例: 1. 连接函数(Connect):用于与交易所建立网络连接。 2.…

CSS(JavaEE初阶系列14)

目录 前言: 1.CSS是什么 1.1CSS基本语法 2.引入样式 2.1内部样式表 2.2行内样式表 2.3外部样式 3.选择器 3.1选择器的种类 3.1.1基础选择器 3.1.2复合选择器 4.常用元素属性 4.1字体属性 4.2文本属性 4.3背景属性 4.4圆角矩形 4.5元素的显示模式 4…

【Leetcode】84.柱状图中最大的矩形(Hard)

一、题目 1、题目描述 给定 n n n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10示例2:…

Stephen Wolfram:那么…ChatGPT 在做什么,为什么它有效呢?

So … What Is ChatGPT Doing, and Why Does It Work? 那么…ChatGPT在做什么,为什么它有效呢? The basic concept of ChatGPT is at some level rather simple. Start from a huge sample of human-created text from the web, books, etc. Then train…

IDA远程调试真机app

IDA远程调试真机app 第一步:启动 android_server,并修改端口 # 启动android_server ./android_server -p31928第二步:端口转发、挂起程序 # 端口转发adb forward tcp:31928 tcp:31928# 挂起程序 adb shell am start -D -n com.qianyu.antid…

Hyper-V增加桥接网络设置(其他方式类同)

点击连接到的服务器,右单击或者右边点击“虚拟交换机管理器” 选择网络种类 配置虚拟交换机信息 外部网络选择物理机网卡设备

中国“诺贝尔奖”未来科学大奖公布2023年获奖名单

未来科学大奖委员会于8月16日公布2023年获奖名单。柴继杰、周俭民因发现抗病小体并阐明其结构和在抗植物病虫害中的功能做出的开创性工作获得“生命科学奖”,赵忠贤、陈仙辉因对高温超导材料的突破性发现和对转变温度的系统性提升所做出的开创性贡献获得“物质科学奖…