NRF52840 Dongle跑通Mesh Light例程记录

开发板:淘宝买的52840模块,应该是兼容官方的52840 dongle板子。

使用NRF Connect SDK开发,需要准备一个调试器,官方VsCodeIDE扩展只支持JLink调试器,其他的调试器可以用OpenOCD。

本人是个嵌入式小白,一共折腾了4天才跑起来,中间走了很多弯路,成功后才发现原来这么容易,都不需要改动代码,还是要好好看文档啊。。。

下载nRF Connect for Desktop

官网地址 https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop

然后在软件里安装Programmer和Toolchain Manager
Programmer可以在DFU模式下刷固件,此处用不到。
ToolchainManager管理nRF Connect SDK的安装
在这里插入图片描述

安装 nRF Command Line Tools

官网地址 https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download

下载nRF Connect SDK

打开ToolchainManager
在这里插入图片描述

选择一个版本进行安装,例如v2.3.0,安装过程比较旧,还需要去Github上拉取代码,最好开代理。
下载好后,点击Open VS Code按钮,会自动检查相关依赖是否安装,根据提示安装缺失依赖即可。

创建项目

在打开的VS Code窗口,打开nRF Connect 选项卡,WELCOME窗口里点击创建新应用
在这里插入图片描述

参考下图配置,然后选择模板。
在这里插入图片描述

Mesh Light例程需要两个模块,分别刷入Light和Light Switch固件,其中Light板上的LED作为受控端,Light Switch板上的按钮用来控制网络中的Light。
在这里插入图片描述

点击此处配置应用
在这里插入图片描述

板子选择52840 dongle,点击Build Configuration。
在这里插入图片描述

然后点击Kconfig
在这里插入图片描述

取消勾选Board has nRF5 bootloader,板子默认固件是带bootloader的,启动时会将bootloader区域设置为只读,而Mesh例程需要在此处写入一些配置,所以如果带bootloader会导致写入失败,程序跑不起来,此处将其关掉。
在这里插入图片描述

取消勾选Logging,如果用的jlink支持rtt也可以修改其中的配置使用rtt输出log,这里直接关掉。
在这里插入图片描述

GCC优化级别选择不优化,防止调试时乱跳。
在这里插入图片描述

修改好后点击右上方Save to file,然后再Build一次
在这里插入图片描述

调试器连接板子和电脑,VS Code IDE中只支持jlink调试器,其他调试器要另想办法了,例如用OpenOCD。
先用j-flash擦除,然后写入编译好的固件,这样可以将出场自带的bootloader干掉,擦除后不要重置或断电开发板!!! ,擦除会同时擦除一些重要配置,重置后可能无法连接调试器,我这里如果中途重置了,则jflash无法再刷写固件,原因不明,只能用st-link+openocd刷写之前的备份。
在这里插入图片描述

一切正常的话,此时板子应该在跑Light的程序了,另一块板子刷入Light Switch的固件,编译流程和之前一样,然后下载nRF Mesh手机App
https://www.nordicsemi.com/Products/Development-tools/nrf-mesh/getstarted

Network页面点击ADD NODE进行添加节点
在这里插入图片描述

两块板子上电后就能在这里搜索出来,根据提示分别添加到Mesh网络中
在这里插入图片描述

点击Mesh Light Switch,因为板子只有一个按钮(另一个时Reset),所以此处只有一个OnOFF Client,点击这个OnOFF Client,进入配置页面。
在这里插入图片描述

先点击bind key绑定App Key,然后点击SET PUBLICATION设置发布地址,此处配置为Living Room的Group,然后点击APPLY。
在这里插入图片描述
在这里插入图片描述

然后点击Mesh Light节点,因为板子上有4个LED,所以此处有4个OnOFF Server,随便选择一个,对其进行配置。
在这里插入图片描述

同样,先绑定App Key,然后点击SUBSCRIBE,选择Living Room的Group,至此两个节点配置完成
在这里插入图片描述

此时点击Light Switch板子上的按钮,Light板子上的LED应该会响应开关

参考
https://devzone.nordicsemi.com/guides/short-range-guides/b/getting-started/posts/nrf52840-dongle-programming-tutorial

https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/lib_bootloader.html?cp=5_0_3_5_0_7#lib_bootloader_memory

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/mesh/light/README.html

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/bluetooth/mesh/light_switch/README.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值