Raspberry Pi Pico C/C++语言开发环境搭建 Raspberry Pi Pico C/C++ SDK

Raspberry Pi Pico是树莓派基金会在2021年1月新发布的微处理器新品。使用基金会自己研发的RP2040芯片,国内现在整个开发板模块售价为30-40元左右。相较于树莓派的其它‘微电脑’型号,这一款产品因为是单片机MCU型的,其最高运行频率可达到133MHz,对IO及模拟信号的操作和处理有更低的时间延迟,可以弥补Raspberry Pi物理互动方面的不足,更类似于‘Arduino’开发板。

官网上的性能介绍:

  • 双核Arm Cortex M0 +处理器,运行频率高达133 MHz
  • 264KB的SRAM和2MB的板载闪存
  • 模块允许直接焊接到载板
  • 具有设备和主机支持的USB 1.1
  • 低功耗睡眠和休眠模式
  • 通过USB使用大容量存储进行拖放编程
  • 26个多功能GPIO引脚
  • 2个SPI,2个I2C,2个UART,3个12位ADC,16个可控PWM通道
  • 片上准确的时钟和计时器
  • 温度感应器
  • 片上加速浮点库
  • 8个可编程I / O(PIO)状态机,用于自定义外围设备支持
  • 可通过 Micro USB 供电,也支持 1.8-5.5 V 直流电源供电。
  • 配备 1 个 LED 灯和一个开关按钮。按钮用于BootSel,也就是向 Pico 烧录程序时控制 Pico 进入 USB 大容量存储模式,也可用于通用的输入按键。使用Pico开发,开发用的设备可以使用树莓派微电脑Linux也可以PC机上的Windows。对于大多人来说使用PC机来开发相对会方便些,当然如果你是树莓派的重度爱好者,使用树莓派微电脑也是得心应手。编程语言可以使用Python,也可以使用C/C++,它们都需要安装相应的SDK和相关的支持软件。安装步骤烦多,不如其它知名MCU的开发环境来的简单。下面就来分享一下Windows操作系统下的C/C++开发环境的搭建。首先是需要安装五个支持工具软件。比较多,建议先全部下载相应的版本。注意的是官方提示这些只在WIN10环境下使用,在WIN7等不保证能正常使用。

    五个支持软件,为方便下载这里同时给出下载地址。
    ARM GCC compiler
    https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloadsCMake
    https://cmake.org/download/
    这个需要下载3.19.5版本,新的3.20似乎没法正常工作可以在Github下找到
    https://github.com/Kitware/CMake/releases
    Build Tools for Visual Studio 2019
    https://visualstudio.microsoft.com/zh-hans/downloads/
    可以选择社区版

    Python 3.9
    https://www.python.org/downloads/windows/

    Git
    https://git-scm.com/download/win

    ARM GCC compiler的安装
    这个编译器安装没什么好说的,直接下一步、下一步就完事了。在安装完成时,最后的选项选择时,全选。

    CMake

    在安装过程中,当安装程序提示时,将CMake添加到所有用户的系统路径中。

    Build Tools for Visual Studio 2019

    这里我是安装VS2019社区版,安装选项为‘使用C++的桌面开发’,‘Windows10 SDK’必须要打勾。

    Python 3.9

    在安装过程中,选择“为所有用户”安装了该软件,并选择将Python 3.9添加到系统PATH中。 在Python末尾提示时,应该选择禁用MAX_PATH长度限制。

    Git

    注意下面3个选项要选上。


    获取SDK和例程
    以上软件安装完成后,重启一下PC。
    重启后在硬盘上新建一个文件夹,我这里是在C盘中新建一个名为‘SDK’的目录。

    选定‘SDK’后按鼠标右键,选‘Git Bash Here’。

    进入Git界面后,分别输入如下指令

    git clone -b master https://github.com/raspberrypi/pico-sdk.git
    cd pico-sdk
    git submodule update –init
    cd ..
    git clone -b master https://github.com/raspberrypi/pico-examples.git

    执行时的界面如下。

    上面已经安装完工具链软件以及Pico的C/C++SDK,编译源代码时如果要使用命令行方式会比较麻烦,这里不说,下面介绍的是使用微软的Visual Studio Code去编译源代码。如果你没有安装VS Code,还需要到https://code.visualstudio.com/download下载安装。(关于如何在VS Code安装中文汉化包请自行了解)

    安装完成后还需要为其设置之前的工具链软件和SDK路径。

    首先在开始菜单找到Visual Studio 2019的Developer Command Prompt菜单并打开。

    在打开的指令窗口中输入code,则会打开设置了所有正确环境变量的Visual Studio Code,以便正确配置工具链。注意不要直接点桌面的VSCode打开它,这会可能导致配置的失败,除非你足够的熟悉了解它和相关的工具链软件。

    在打开的VS Code中安装,CMake Tools。

    安装CMake Tooks扩展后,点齿轮状图标,打开设置项进行SDK路径设置。

    找到Cmake:Configure Environment项,并增加一个PICO_SDK_PATH项,项目的值就为上面下载SDK时的路径。

    找到Cmake:Generator项,加值’NMake Makefiles’ 。

    至此完成了环境的搭建。

    下面就可以用下载下来的SDK例子进行编译测试。
    在VS Code打开下载的pico-examples目录,打开后CMake自动配置。

    活动工具包需要选择 ‘GCC for arm-none-eabi’。生成后,则进行编译。编译完成的文件会被放在例子目录下的build目录下。注意,如果编译不能进行,则要尝试用Visual Studio 2019的Developer Command Prompt菜单来打开VS Code。


    编译中的界面。

    编译完成后,则可以下载文件到Pico下进行测试。为了直观查看,可以使用blink例子,这个例程就是让板上连接到GPIO25的LED闪烁。首先在pico-examples\build\blink目录下找到编译好的blink.uf2文件。

    然后按着Pico的BootSel按钮,把Pico接入PC的USB端口,这时会在PC上出现一个名为RPI-RP2的存储盘,把blink.uf2拖入该盘中,写入后,Pico自动重启并运行程序,让LED闪烁。

解决导入numpy出错

win10系统中用pip install numpy安装最新版的numpy 1.19.4,在Python中导入numpy时会出报错。查看错误代码是指向_init__.py的302行。

 

在vscode中在久错误提示行中直接按Ctrl+单击,直接进入编辑_init__.py。

把这一行注解掉,就可以解决。

修改PIP默认安装路径

新近安装Python3.9.1,使用自定义安装,安装路径C:\Python39。

然后使用pip在线安装库时,发现库不是安装在Python安装路径之下,导致原来做的程序无法使用。分析原因后,发现pip的默认安装路径是在用户数据路径之下,而不是指向Python安装路径之下,导致Python运行代码时无法加载下载的库。

用命令pip show pip 检查pip信息,本地路径c:\python39\lib\site-packages,并没问题。

虽然可以用 pip install -t ‘文件夹路径’ ‘库名’ 这样的指令方式把库安装到指令目录,但每次这样会有点麻烦,另处的方式就是修改pip默认的安装目录。方法为修改Python的site.py文件。

使用python -m site -help可以查看到site.py具体所在目录。

打开并编辑“USER_SITE”和“USER_BASE”,指向需要的目录,并保存。

然后安装一个VSCode用到的代码分析库pylint来进行检查目录设置是否正确。

使用指令 pip install pylint安装,打开C:\Python39\Lib\site-packages目录,pylint正确安装在此目录了。

也可以用pip show pylint来检查pylint库的信息。