TuyaOS开发学习笔记(4)——BLE开发搭建环境、编译烧写(NRF52832)

news2025/1/19 10:22:49

一、搭建环境

1.1 官方资料

TuyaOS

1.2 安装Visual Studio Code

官网下载:https://code.visualstudio.com
百度网盘:https://pan.baidu.com/s/1R62HT0PVmVzMwOXtCmIQwA 提取码:g9fb

1.3 安装Tuya Wind IDE

  1. 启动 Visual Studio Code 后,参考下图流程在插件市场搜索并安装 Tuya Wind IDE。

  2. 按下图箭头顺序所示,打开 Tuya Wind IDE 登录页面,登录的账号和密码为 涂鸦 IoT 开发平台 的账号和密码。

1.4 下载开发框架

登录后,选择 主页 > 新建开发框架

下载对应的 TuyaOS 开发框架。并且在对应的开发环境下使用。单击 完成,可下载开发包。

1.5 安装Keil 5

官网下载:http://www2.keil.com/mdk5/
百度网盘:https://pan.baidu.com/s/1nDiNSWMnoGtSzFOLNCmFhw?pwd=add3 提取码: add3

1.6 安装nRF Connect桌面版

官网下载:https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-Desktop
百度网盘:https://pan.baidu.com/s/1XNdNUb22dvWClNkqprCJ-A?pwd=mzbc 提取码: mzbc

1.7 安装Python 3.8.10

官网下载:https://www.python.org/downloads/
百度网盘:https://pan.baidu.com/s/1ObLDWz_eXo7TGsDYaRSidw?pwd=jp8b 提取码: jp8b

1.8 安装Nordic Device family pack 8.24.1

官网下载:https://images.tuyacn.com/rms-static/c4d7aae0-333e-11ec-88c2-69da1a70031e-1634910522510.pack?tyName=NordicSemiconductor.nRF_DeviceFamilyPack.8.24.1.pack
百度网盘:https://pan.baidu.com/s/1XHUFqTnaPEfpquUYjYBLHA 提取码:vgb2

二、编译

2.1 创建应用

展开左侧 software/TuyaOS/apps 目录,并在右键单击 apps 目录后选择 Create Project

2.2 编译应用

注意:第一次编译必须使用 Visual Studio Code,脚本会自动构建编译环境,之后您可以打开 IAR 或者 Keil 等第三方开发工具进行调试。

  1. 展开左侧 software/TuyaOS/apps/xxx 目录,并在右键单击 xxx 目录后选择 Build Project。如果路径选择不正确,会在右下角报错提示。

  2. 选择 Build Project 后,在跳出的文本框内输入编译固件的版本号(格式为 x.x.x)后,按回车键确认。其中需注意,蓝牙 Mesh 和 Beacon 相关应用版本格式为 x.x,其它应用版本格式为 x.x.x。

如果提示: 未检测到Python 3.8,此命令需要Python 3.8才能运行
请按照1.7 安装Python 3.8.10

或者右键 build_app.py,选择在集成终端打开

S 保存配置,按 Exit 退出

执行编译脚本 build_app.py,第一个参数“apps/xxx/”表示app所在的路径,“xxx”表示app名称,第三个参数“1.0.0”表示版本号。

.\build_app.py apps/tuyaos_demo_ble_peripheral tuyaos_demo_ble_peripheral 1.0.0

  1. 等待 IDE 终端开始自动下载工具链,下载完成后自动编译生成固件产物并告知固件产物路径。

选择Keil UV4.exe:


编译成功:

如果提示 缺少NordicSemiconductor.nRF_DeviceFamilyPack.8.24.1
请按照1.8 Nordic Device family pack 8.24.1

编译生成固件产物在 software\TuyaOS\_output

  • tuyaos_demo_ble_peripheral_QIO_1.0.0.hex:QIO 是生产固件, 其中有 bootloader
  • tuyaos_demo_ble_peripheral_UA_1.0.0.hex:UA 是用户区固件
  • tuyaos_demo_ble_peripheral_UG_1.0.0.bin:UG 是全量升级固件

2.3 清除编译内容

.\build_app.py apps/tuyaos_demo_ble_peripheral tuyaos_demo_ble_peripheral 1.0.0 clean

三、烧录

3.1 脚本烧录(方式一)

  1. 在 Visual Studio Code 左侧目录栏的 software\TuyaOS\.log\hex\material 上,右键单击,选择 在文件资源管理器中显示:

  1. 双击 load_softdevice_bootloader_app.bat 脚本,即可进行涂鸦的固件烧录。

说明:此处烧录为全固件烧录,烧录后需要进行授权。

3.2 Keil烧录(方式二)

  1. 在 Visual Studio Code 左侧目录栏的 software\TuyaOS\.log 上,右键单击,选择 在文件资源管理器中显示:

  1. 双击 Demo.uvprojx,点击 Load 即可进行应用层的固件烧录。

说明:此处烧录为应用层固件烧录,不会覆盖已授权信息,但须先烧录一次全量固件。


3.3 nRF Connect桌面版烧录(方式三)

  1. 在 nRF Connect 中,选择 Programmer

  1. 选择设备

  2. 选择文件

说明:此处烧录为应用层固件烧录,不会覆盖已授权信息,但须先烧录一次全量固件。


3.4 查看调试信息

  1. 在开始菜单中搜索 J-Link RTT Viewer Vx.xx (x.xx 版本号)并打开
  2. 在 Target device 中选择 NRF52832_XXAA ,确认无误单击 OK。

  1. 在 File 中选择 Connect,重启设备后看到打印信息


• 由 Leung 写于 2024 年 10 月 14 日

• 参考:Tuya Wind IDE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2214087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows10 输入法突然变成繁体字。

1.在任务栏的输入法上切换到设置页面 2. 进入语言选项 3.浮动在桌面上? 4. 点击繁体或简体切换。

IWO-Kmeans聚类 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法

智能优化 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法 目录 智能优化 | MATLAB实现IWO-Kmeans侵入性杂草优化K均值聚类算法效果一览基本介绍模型描述程序设计参考资料效果一览 基本介绍 侵入性杂草优化 (IWO) 聚类, 与 K-means 和 GMM 高斯混合模型的比较。 入侵杂草优…

jupyter notebook显示左侧内容方法(版本7也可以用)

1 安装 Nbextensions pip install jupyter_contrib_nbextensions如果安装不成功, jupyter安装Nbextensions后不出现Nbextensions选项 就使用以下语句 conda install -c conda-forge jupyter_contrib_nbextensions然后设置下 jupyter contrib nbextension insta…

kali在git外网的代理

如果发现用git无法直接连接到某些外网项目。可以配置一下代理。 vi /etc/proxychains4.conf 主机可以开一下机场代理&#xff0c;查一下主机的地址和代理所开的端口&#xff0c;我这里是7890 写上代码&#xff1a; socks5 <your ip> <your port> 写上之后wq保…

java内存管理

Java内存管理主要涉及Java虚拟机&#xff08;JVM&#xff09;对内存的分配与回收过程。这一过程确保了Java程序在运行时能够有效地使用内存资源&#xff0c;同时避免了手动管理内存所带来的复杂性和潜在错误。 内存分配&#xff1a; 堆&#xff08;Heap&#xff09;&#xff1a…

【C++】拆分详解 - list

文章目录 一、list的介绍二、list的使用1. 构造2. 迭代器3. 增 删 查 改4. list 迭代器失效问题5. list 排序问题 三、list的模拟实现0. 整体框架1. 迭代器类1.1 operator->1.2 临时对象1.3 const_iterator 2. list类2.1 begin / end2.2 构造 / 析构 / 拷贝构造 / 赋值重载2…

谷歌浏览器如何防范恶意网站和广告

在日常使用互联网时&#xff0c;我们经常会遇到一些恶意网站或广告&#xff0c;这些不仅会影响我们的浏览体验&#xff0c;还可能对我们的设备安全造成威胁。为了帮助大家更好地防范这些问题&#xff0c;本文将详细介绍如何在谷歌浏览器中采取有效的措施来防范恶意网站和广告。…

Grafana+ Node+ Prometheus对服务器进行性能监控

目录 一、Grafana 1.把Grafana压缩文件上传到Linux服务器 2.安装服务 3.启动服务 4.访问 二、Node 1.上传node_exporter-1.5.0.linux-amd64.tar到服务器 2.解压 3.启动服务 三、Prometheus 1.上传prometheus-2.43.0.linux-amd64.tar到服务器 2.解压 3.进入prometh…

【Linux】ComfyUI和SD WebUI之PYTHON环境共享,模型共享,LORA等公共资源共享。最大限度节约空间

需求 一般玩AI绘图都会装ComfyUI和SD WebUI。而且这俩的模型、lora等都是一致的。为了避免空间的浪费&#xff0c;一般会采用共享数据的方式。而且共享的数据可以任意指定分区&#xff0c;这让挂载NAS共享空间成为可能&#xff0c;实现多绘画机ComfyUI和SD WebUI共享资源。 实…

SpringCloud学习记录|day4

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 网关 微服务下&#xff0c;好多不同地址和端口&#xff0c;而前端只知道8080&#xff0c;这怎么解决&…

不起眼的错误参数导致remote-debugging-port不生效

引言 背景 由于有一些小需求需要控制浏览器批量执行请求&#xff0c;最简单的方案是使用 DrissionPage 来实现&#xff0c;遂有了下面的问题。 问题 通过命令行传入 remote-debugging-port9111 参数&#xff0c;但是调试了一天&#xff0c;一直不生效&#xff0c;各种方法都…

【数据结构与算法】线性表链式存储结构

线性表链式存储结构 文章目录 链式存储结构*头结点和头指针一.线性链表&#xff08;单链表&#xff09;1.1定义1.2初始化1.2.1带头结点的初始化1.2.2不带头结点的初始化 1.3插入1.3.1按位序插入1.3.2指定结点的后插入操作1.3.3指定结点的前插入操作 1.4删除1.4.1按位序删除1.4.…

小猿口算安卓端安装包PK一题秒过关。。。

大家好&#xff0c;我是小黄。 近段时间&#xff0c;越来越多的同学都想去小猿口算里面虐小学生&#xff0c;但是发现越来越多的计算机学生带着科技与他们进行对抗&#xff0c;这样非计算机专业的大学生们​苦不堪言。 现在&#xff0c;非计算机大学生们翻身的机会来了&#…

二叉平衡树(AVL树)Java语言实现

一、二叉平衡树 上一章所示的同一组元素按照不同顺序插入到二叉排序树中可能会产生两种形状不同的二叉排序树。 当出现右边的情况时&#xff0c;树的高度过高&#xff0c;如果要查找值为“70”的节点需要查找7次&#xff0c;其查找次数已经接近于链表了&#xff0c;这样会导致…

短短几日连发数案,艺术家Jennifer Le Feuvre插画版权维权

案件基本情况起诉时间&#xff1a;2024-10-7、2024-10-8、2024-10-9案件号&#xff1a;24-cv-09629、24-cv-09636、24-cv-09640、24-cv-09688、24-cv-09697、24-cv-09709、24-cv-09712、24-cv-09757、24-cv-09775、24-cv-09794原告&#xff1a;Jennifer Le Feuvre原告律所&…

【安装教程】Windows10环境下Pytorch(GPU版)的安装与配置

目录 Pytorch的概念安装前要求一、NVIDIA驱动查看二、Anaconda的安装2.1 Anaconda的安装2.2 创建虚拟环境2.3 激活虚拟环境 三、CUDA ToolKit的安装&#xff08;选做&#xff0c;CPU版本可跳过&#xff09;3.1 CUDA安装包的下载&#xff08;以CUDA11.6.0为例&#xff09;3.2 CU…

架构设计笔记-19-大数据架构设计理论与实践

知识要点 案例分析 1.Lambda架构优缺点 2.web架构设计 3.web系统架构设计相关技术 论文

面向对象的继承性

目录 1、继承的概念 2、方法的重写 3、重载和重写的区别 4、super关键字 5、this和super的区别 6、final关键字 7、抽象类 8、接口 1、继承的概念 在程序中&#xff0c;继承描述的是事物之间的所属关系&#xff0c;通过继承可以使很多事物之间形成一种关系体系。 在Java…

51单片机的智能空调【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温湿度传感器继电器按键等模块构成。适用于空调温度控制等相似项目。 可实现功能: 1、LCD1602实时显示室内温湿度、运行模式、设定温度和定时时间 2、首先选择空调的运行模式&#xff0c;如加热、制冷、除湿&…

@RequestMapping对不同参数的接收方式

1、简单参数 1、参数名与形参变量名相同&#xff0c;定义形参即可接收参数&#xff0c;且会自动进行类型转换。 RequestMapping("/simple")public String simpleParam(String name,int age){String username name;int userAge age;System.out.println(username&…