跳转至

nRF52开发环境搭建

nRF52开发环境搭建

现在 Nordic 主推的开发环境是:VS Code + NCS(nRF Connect SDK)

环境搭建

VS Code 下载地址:https://code.visualstudio.com/

刷写固件需要用到 Jlink,因此需要 Jlink 驱动的配合:https://www.segger.com/downloads/jlink

安装 jlink 软件时注意勾选 Install legacy USB Driver for J-Link(新版本 Jlink 默认使用 WinUSB 驱动,因此安装程序默认不安装 jlink 驱动,需要手动勾选)

1728711626259-9b72852b-499e-42b2-bb60-5b8523b3ac71.png

首先在 VS Code 中搜索插件:nRF Connect for VS Code Extension Pack 并安装好

1728710878221-5f69e24c-3a46-490d-b1ee-1f0b30085e5e.png

安装好插件后会在左侧出现插件图标,点击进入插件,会提示安装工具链以开始,点击后选择安装工具链安装即可

1728710921489-78e31275-20cb-48f8-9ecb-88227eb27516.png

安装完 Toolchain 后插件选项就多了,点击 Manage SDKs 继续安装 SDK

1728710972787-7a4b546b-f819-447a-926c-6531e3df4c10.png

SDK 要从 Github 拉取特别多仓库,没点魔法很难一次性下载成功,可以为 git 设置代理(代理地址需根据自己情况修改)

git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy https://127.0.0.1:7890

1728711097870-e8953e19-af83-4862-b838-f203ab1f4519.png

工程配置

安装完 SDK 即可选择 Create New Application 创建新应用

1728711066029-f49078ef-c55e-42da-9934-a49ef7521ff4.png

填写应用的路径完成新应用创建

1728711128314-bf0d2e5e-56f0-4851-9006-94698cef6679.png

刚创建的应用是空的需要设置编译选项,首先选择 nRF 插件,点击 Add build configuration,选择对应的开发板,例如 52840dongle 最后点击 Build Configuration

1728711206924-166c8e65-0379-458e-8021-2051a578461a.png

编写代码

配置完成编译选项后,会自动生成三个文件夹,Source files 是源码,Output files 是编译后的固件,修改源码后点击 Build 进行编译,然后使用 JLINK 连 SWD 接口,点击 Flash 即可烧录固件到开发板

1728711228568-4e3cc94a-a2f8-497b-b8c3-4fc835c25201.png

这段代码的效果是 USB Dongle 的绿色 LED 灯闪烁 NCS开发参考文档

#include <zephyr/kernel.h>
#include "hal/nrf_gpio.h"
#define LED_PIN1 NRF_GPIO_PIN_MAP(0,6)  
void main(void)
{
    nrf_gpio_cfg_output(LED_PIN1);
    nrf_gpio_pin_clear(LED_PIN1);
    while(1){
        nrf_gpio_pin_toggle(LED_PIN1);
        k_sleep(K_MSEC(100));
    }
}

LED1 P0.06 GREEN
LED2 P0.12 GREEN
LED2 P1.9 RED
LED2 P0.8 BLUE

编译器默认开发板是有 nRF5 bootloader 的,因此编译出来的固件只是 APP,没有 bootloader,在左侧的【nRF Kconfig GUI】中的 Board Options 菜单取消勾选 Board has nRF5 bootloader,注意要点击右上角的 Apply,然后重新编译烧录即可

1728711414060-7451a7aa-6b9e-4118-bb25-02878167678b.png

注意,烧录完成后需要对开发板进行复位操作,才会执行烧录进去的代码

原文: https://www.yuque.com/hxfqg9/iot/plgt8eaaqkhg4cdx