7500|10

655

帖子

30

TA的资源

版主

楼主
 

45“万里”树莓派小车——PicoW学习(C语言环境搭建、新建工程、在线调试) [复制链接]

本帖最后由 lb8820265 于 2023-10-17 22:13 编辑

1. PicoW简介

       PicoW就是Cortex-M0+内核的RP2040芯片加上一个CYW43439蓝牙WiFi双模芯片的核心板。主频最高可到133Mhz,内置264KB的 SRAM和2MB的板载内存,板子外形和相关外设如下图所示。

 

2. C语言环境搭建

     网上大多是Pico W的python语言环境的搭建,但是据我了解在实时性和功能完整性上C/C++语言是要远远好于python语言环境的,所有我选择使用C/C++语言来开发Pico W,好在官方有教程。主要参考的文档为《getting-started-with-pico》和《connecting-to-the-internet-with-pico-w》。

Windows系统安装开发环境

     Pico可以在多个操作系统中进行开发,但还是习惯在Windows下进行开发,在该GitHub仓库的介绍文档连接中下载安装包,直接双击安装,Pico的例程和VSCode开发环境也会一并进行安装。并且会生成一个专属Pico的VSCode环境的快捷方式,在开始菜单中“Pico - Visual Studio Code”。打开该VSCode会自动加载Pico的例程。

编译工程

       首先确认编译工具选择“pico ARM GCC”或者“GCC 10.3.1 arm-nome-eabi”,VSCode软件最下面可以查看,函数库是默认使用的Pico硬件,WiFi和蓝牙相关例程是没有编译的,而且blink程序在PicoW上面也是不可以用的,可以在任意一个配置文件中添加使用PicoW设置和WiFi配置,例如在例程根目录的“CMakeLists.txt”文件中添加如下设置,SSID和Password需要根据实际的WiFi名和密码修改。

set(PICO_BOARD pico_w)
set(WIFI_SSID lb8820265)
set(WIFI_PASSWORD lb8820265)

 

       在软件左边栏选择“CMake”,在最上方点击编译按钮可以编译所有工程,也可以在单个工程右边点击编译按钮,编译单个工程。

 

      以blink程序为例,编译后的文件如下。

 

烧录工程

      Pico可以像ST的NUCLEO开发板一样将生成的文件直接拖入到文件夹中就完成了烧录。不过Pico需要在插入USB的时候先按着板子上的“BOOTSEL”按钮。使用USB线连接板子和电脑,然后就出现一个新的盘符,像一个U盘一样,将编译生成的“*.uf2”文件复制到新的盘符里面就可以了,会自动运行,看到LED一闪一闪了。

3. 新建工程

      Pico有两种方式新建工程,一种是通过命令行的方式,另一种通过自动工程工具“pico project generato”生成。工具网址,下载后该工具不能直接运行,需要使用命令启动,在系统搜索栏中搜索“Pico-Developer Command Prompt”运行。

 

      转入进入到下载的软件目录中,例如:

cd pico-project-generator-master

      输入如下指令运行软件:

py pico_project.py --gui

 

     进入到软件界面,“Board Type”选择“Pico W”,其他的按需选择,最下面的“Create VSCode project”不需要勾选,因为软件自动生成的VSCode工程文件不好用,会导调试不成功。这里作为演示勾选如下配置。

 

      从例程中将“.vscode”文件夹复制到刚刚新建的工程中,如下。

 

 

     使用VSCode软件打开新建工程的文件夹,按照上面的方法进行编译,成功会生成“.elf”文件,如下。

 

4. 在线调试

       Pico W支持SWD在线调试,需要完成OpenOCD的编译,在Windows环境下为了能编译OpenOCD又需要MSYS2软件。

MSYS2软件安装

      在官网下载并安装该软件,然后打开MSYS软件,是一个类似终端的界面,然后进行输入如下指令进行环境的配置:

pacman -Syu
pacman -Su
pacman -S mingw-w64-x86_64-toolchain git make libtool pkg-config autoconf automake texinfo
mingw-w64-x86_64-libusb

 

 

下载编译OpenOCD

     克隆树莓派仓库里的OpenOCD并且编译。这里要注意一定要通过指令克隆下来,不能在网页上直接下载下来。

git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1
cd openocd
./bootstrap
./configure --disable-werror
make -j4

     进入src文件夹,运行编译出来的文件,正确的结果如下。

 

制作Picoprobe

     烧录工具可以使用Pico板子制作,也可以使用官方的Raspberry Pi Debug Probe工具,这里使用Pico通过烧录固件来制作一个Picoprobe,固件可以在官方GitHub

下载源码然后进行编译再烧录,但是我觉得没有必要,也可以直接在官网下载“picoprobe.uf2”文件,该文件在帖子最后也有下载。

 

     给Pico烧录该固件后,将两个Pico连线如下。

 

     使用杜邦线连接如下。

 

运行调试

     选择“hello_serial”例程为例进行在线调试。点击左边栏的调试按钮,再点击绿色三角形,之后会在顶部弹出选择框,分别选择“Pico Debug”与“hello_serial”,就可以直接进入调试环境了,打开串口工具就可以看到输出的“Hello, world”字符串如下。

 

     后续如果想要选择其他的例程进行调试,就点击最下面状态栏的[hello_serial]进行选择。最下面的状态栏指示栏如下。

 

picoprobe.uf2

186 KB, 下载次数: 2

此帖出自创意市集论坛

最新回复

然后视觉导航?   详情 回复 发表于 2024-1-25 09:04
点赞 关注
个人签名QQ:252669569
 
 

回复
举报

7608

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

现在开发个单片机也要这么复杂的手续了哇?还是keil,iar好啊。并不是每个人都能折腾这么多乱七八糟的

此帖出自创意市集论坛
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

655

帖子

30

TA的资源

版主

板凳
 
freebsder 发表于 2023-10-18 14:51 现在开发个单片机也要这么复杂的手续了哇?还是keil,iar好啊。并不是每个人都能折腾这么多乱七八糟的

哈哈,你说的真是我的心里话,我也是从keil、iar入门的单片机,那些编译、链接配置啥的都不要考虑,现在这些开源硬件都用免费的开发环境,配置就复杂了起来。

我这个分享的还是使用VSCode来开发还相对好一点,我见过一个大神,国外的一个很老的程序员,只需要一个代码编辑器比如vim,然后所有的操作都用指令来完成,整个写代码过程鼠标都不用,相当的优雅。

此帖出自创意市集论坛
个人签名QQ:252669569
 
 
 

回复

16

帖子

4

TA的资源

一粒金砂(中级)

4
 

步骤多了点!!!!

此帖出自创意市集论坛

点评

你说的对,我也感觉,这就是为啥很少有用C语言来编程控制Pico的,但是习惯了也还好,C语言还是有不少优势的。  详情 回复 发表于 2023-10-29 22:07
 
 
 

回复

655

帖子

30

TA的资源

版主

5
 
plc2099 发表于 2023-10-28 09:02 步骤多了点!!!!

你说的对,我也感觉,这就是为啥很少有用C语言来编程控制Pico的,但是习惯了也还好,C语言还是有不少优势的。

此帖出自创意市集论坛
个人签名QQ:252669569
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

6
 

本书在习题解析过程中给出了解题思想的友情提示,指明解题过程的注意事项,其解题步骤科学、完善,且一题多解,以便相互校核;特别是在对绝大多数习题的解析过程中给出了相应的MATLAB验证程序,

此帖出自创意市集论坛
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

7
 
本书在习题解析过程中给出了解题思想的友情提示,指明解题过程的注意事项,其解题步骤科学、完善,且一题多解,以便相互校核;特别是在对绝大多数习题的解析过程中给出了相应的MATLAB验证程序,
此帖出自创意市集论坛
 
 
 

回复

119

帖子

0

TA的资源

一粒金砂(中级)

8
 

GPIO PL жλ 1

此帖出自创意市集论坛
 
 
 

回复

365

帖子

0

TA的资源

版主

9
 

后面是打算用pico直接pwm控制直流电机做小车吗

此帖出自创意市集论坛

点评

应该会用pico做控制底盘,上面还是会用树莓派做图像处理  详情 回复 发表于 2024-1-24 21:26
 
 
 

回复

655

帖子

30

TA的资源

版主

10
 
LitchiCheng 发表于 2024-1-24 16:55 后面是打算用pico直接pwm控制直流电机做小车吗

应该会用pico做控制底盘,上面还是会用树莓派做图像处理

此帖出自创意市集论坛

点评

然后视觉导航?  详情 回复 发表于 2024-1-25 09:04
个人签名QQ:252669569
 
 
 

回复

365

帖子

0

TA的资源

版主

11
 
lb8820265 发表于 2024-1-24 21:26 应该会用pico做控制底盘,上面还是会用树莓派做图像处理

然后视觉导航?

此帖出自创意市集论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表