rk3399开发环境使用Android 10初体验蓝牙功能

版本

日期

作者

变更表述

1.0

2024/11/10

于忠军

文档创建

 零. 前言

由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluedroid做一个系统性的介绍,尽可能的涵盖所有内容。

-------------------------------------------------------------------------------------------------------------------------

蓝牙视频教程(跟韦东山老师合作), 其中专题21就是专门针对Bluedroid做的系统介绍

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.20.5aeb41f98e267j&id=693788592796

--------------------------------------------------------------------------------------------------------------------------

一. RK3399开发板介绍

1. 开发板介绍

我们整个用的开发板环境是Firefly的RK3399 PC pro开发板

资料连接如下:

Firefly | 让科技更简单,让生活更智能

发货清单(仅供参考) — Firefly Wiki

当然我们这一系列Bluez的教程,你也可以用其他开发板

整个开发板的参数如下:

2. 蓝牙模组介绍

整个开发板默认的板载BT/Wi-Fi模组是正基的AP6256,

  • AP6256是正基科技推出的一款低成本,低功耗的双模模块。是一款SDIO接口单通道802.11ac双频支持BT5.0 蓝牙WiFi二合一模块。
  • Model:AP6256:SDIO WIFI + UART BT
  • Chip:BCM43456
  • WiFi: 2.4G&5G
  • BT:5.0

pin的定义如下:

3. 主控跟蓝牙模组接线介绍

二. 软件环境

1. image镜像

我这边是用的android 10的镜像,下载链接如下:

百度网盘 请输入提取码

提取码:1234

2. 烧录介绍

烧写image的链接为:2. 使用USB线缆升级固件 — Firefly Wiki

NOTED: firefly这块资料更新的不好,或者他们资料太多,忘记更新,所以很多地方工具的更新跟文档并不能及时同步,所以导致给人很乱的感觉,所以你就按照我的说法来做就行了,我已经淌过坑。

我使用的是windows的下载方式,方式如下:

a. 安装RK USB驱动

下载 Release_DriverAssistant.zip,解压,然后运行里面的 DriverInstall.exe 。为了所有设备都使用更新的驱动,请先选择驱动卸载,然后再选择驱动安装。

b. 安装AndroidTool

AndroidTools为旧版本叫法,新版本改名为RKDevTool 提取码:1234

下载链接如下:Firefly | 让科技更简单,让生活更智能

如果你用AndridTool就要严格按照版本要求,我是直接使用的事RKDevTool来烧录的

我们烧录的是android 10

c. 进入升级模式

通常我们升级固件的模式有两种,分别是Loader模式和MaskRom模式。烧写固件前,我们需要连接好设备,并让板子进入到可升级模式。我们就默认用Loader模式了

Loader模式

硬件方式进入Loader模式

连接设备并通过RECOVERY按键进入Loader升级模式步骤如下:

  • 先断开电源适配器连接
  • Type-C data cable连接好设备和主机。

  • 按住设备上的 RECOVERY (恢复)键并保持。

  • 插上电源
  • 大约两秒钟后,松开 RECOVERY 键。

查看Loader模式

如何确定板子是否进入Loader模式,我们可以通过工具去查看

Windows操作系统

通过AndroidTool工具可以看到下方提示Found One LOADER Device

如果有进行“进入Loader模式”的操作,仍旧没有看到烧写工具提示LOADER,此时可以看一下Windows主机是否有提示发现新硬件并配置驱动。打开设备管理器,会见到新设备 Rockusb Device 出现,如下图。如果没有,可返回上一步重新安装驱动。

d. 下载

通过Firmware选择固件生成路径

通过Upgrade下载

3. 验证

a. debug设置

对于接线我们不一定非要采用firefly的串口小板,你也可以自己选择usb转串口模块。线如下:

ROC-RK3399-PC Pro 使用以下串口参数:

  • 波特率:1500000
  • 数据位:8
  • 停止位:1
  • 奇偶校验:无
  • 流控:无

b. 查看android版本

getprop "ro.build.version.release"

c. 查看内核版本

uname -a

三. 蓝牙enable验证

下载一个scrcpy,这个工具就是使用adb来投屏

https://github.com/Genymobile/scrcpy/releases/download/v1.24/scrcpy-win64-v1.24.zip

添加环境变量

在cmd中敲命令scrcpy

四. 重新整个编译代码

1. 代码路径

百度网盘 请输入提取码

提取码:1234

下载后检查md5值,检查下载是否正确:

解压:

cd ~/path   // 你的真实路径
7z x ./Firefly-RK3399_Android10.0_git_20211222.7z.001 -ork3399_Android10.0
cd ./rk3399_Android10.0
git reset --hard

2. 编译

./FFTools/make.sh -d rk3399-roc-pc-plus -j8 -l rk3399_roc_pc_plus-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug

生成的整个image在 rockdev/Image-rk3399_roc_pc_plus/ROC-RK3399-PC-Pro_Android10_HDMI_221130.img

过程中解决错误(每个电脑的环境肯定不一致,遇到啥问题解决啥问题):

sudo apt-get install gawk

编译特定的模块

source ./FFTools/build.sh

lunch rk3399_roc_pc_plus-userdebug

mmm development/tools/idegen/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis实战案例(黑马点评)

List item Redis实战案例(黑马点评) 一、短信登录 tomcat的运行原理: 当用户发起请求时,会访问tomcat注册的端口,任何程序想要运行,都需要有一个线程对当前端口号进行监听,当用户和tomcat连…

每行数据个数在变的二维数组的输出

#include<stdio.h> int main() {//定义四个一维数组int arr1[1] { 1 };int arr2[3] { 1,2,3 };int arr3[5] { 1,2,3,4,5 };int arr4[7] { 1,2,3,4,5,6,7 };//把四个一维数组放进一个二维数组int* arr[4] { arr1,arr2,arr3,arr4};//预先计算好每一个数组真实的长度in…

IPv6 NDP 记录

NDP&#xff08;Neighbor Discovery Protocol&#xff0c;邻居发现协议&#xff09; 是 IPv6 的一个关键协议&#xff0c;它组合了 IPv4 中的 ARP、ICMP 路由器发现和 ICMP 重定向等协议&#xff0c;并对它们作出了改进。该协议使用 ICMPv6 协议实现&#xff0c;作为 IPv6 的基…

MySQL数据库:SQL语言入门 【2】(学习笔记)

目录 2&#xff0c;DML —— 数据操作语言&#xff08;Data Manipulation Language&#xff09; &#xff08;1&#xff09;insert 增加 数据 &#xff08;2&#xff09;delete 删除 数据 truncate 删除表和数据&#xff0c;再创建一个新表 &#xff08;3&#xf…

第二十一周机器学习笔记:动手深度学习之——数据操作、数据预处理

第二十周周报 摘要Abstract一、动手深度学习1. 数据操作1.1 数据基本操作1.2 数据运算1.2.1 广播机制 1.3 索引和切片 2. 数据预处理 二、复习RNN与LSTM1. Recurrent Neural Network&#xff08;RNN&#xff0c;循环神经网络&#xff09;1.1 词汇vector的编码方式1.2 RNN的变形…

购物车demo全代码-对接支付宝沙箱环境

创建项目 vue create alipay-demoAlipayDemo.vue <template><div class"cart-container"><h2>商品列表</h2><table class"product-table"><tr><th>商品</th><th>价格</th><th>商品描…

【CANOE】【学习】【DecodeString】字节转为中文字符输出

系列文章目录 文章目录 系列文章目录前言一、DecodeString 转为中文字节输出二、代码举例1.代码Demo2.DecodeString 函数说明函数语法&#xff1a;参数说明&#xff1a;返回值&#xff1a;使用示例&#xff1a;示例代码&#xff1a; 说明&#xff1a; 前言 有时候使用的时候&a…

超全超详细使用SAM进行高效图像分割标注(GPU加速推理)

一、前言 &#x1f449; 在计算机视觉任务中&#xff0c;图像分割 是重要的基础工作&#xff0c;但人工标注往往耗时耗力。Meta推出的 SAM&#xff08;Segment Anything Model&#xff09;&#xff0c;大幅提升了分割效率和精度&#xff0c;让标注工作更加轻松。本篇博客将详细…

JavaEE 重要的API阅读

JavaEE API阅读 目的是为了应对学校考试&#xff0c;主要关注的是类的继承关系、抛出错误的类型、包名、包结构等等知识。此帖用于记录。 PageContext抽象类 包名及继承关系 继承自JspContext类。PageContext 实例提供对与某个 JSP 页⾯关联的所有名称空间的访问&#xff0…

【Python · PyTorch】卷积神经网络(基础概念)

【Python PyTorch】卷积神经网络 CNN&#xff08;基础概念&#xff09; 0. 生物学相似性1. 概念1.1 定义1.2 优势1.2.1 权重共享1.2.2 局部连接1.2.3 层次结构 1.3 结构1.4 数据预处理1.4.1 标签编码① One-Hot编码 / 独热编码② Word Embedding / 词嵌入 1.4.2 归一化① Min-…

Python爬虫----python爬虫基础

一、python爬虫基础-爬虫简介 1、现实生活中实际爬虫有哪些&#xff1f; 2、什么是网络爬虫&#xff1f; 3、什么是通用爬虫和聚焦爬虫&#xff1f; 4、为什么要用python写爬虫程序 5、环境和工具 二、python爬虫基础-http协议和chrome抓包工具 1、什么是http和https协议…

Python学习笔记(2)正则表达式

正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的检查一个字符串是否与某种模式匹配。 在 Python 中&#xff0c;使用 re 模块提供的函数来处理正则表达式&#xff0c;允许你在字符串中进行模式匹配、搜索和替换操作。 1 正则表达式 正则表达式(Regular Expressi…

整数唯一分解定理

整数唯一分解定理&#xff0c;也称为算术基本定理&#xff0c;是由德国数学家高斯在其著作《算术研究》中首次提出的。本文回顾整数唯一分解定理以及对应的几个重要结论。 一、整数唯一分解定理 整数唯一分解定理&#xff0c;也称为算术基本定理&#xff0c;是数论中的一个重…

小版本大不同 | Navicat 17 新增 TiDB 功能

近日&#xff0c;Navicat 17 迎来了小版本更新。此次版本新增了对 PingCap 公司的 TiDB 开源分布式关系型数据库的支持&#xff0c;进一步拓展了 Navicat 的兼容边界。即日起&#xff0c;Navicat 17 所有用户可免费升级至最新版本&#xff0c;通过 Navicat 工具实现 TiDB 数据库…

【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)

#IEEE出版|EI稳定检索#主讲嘉宾阵容强大&#xff01;多位外籍专家出席报告 2024健康大数据与智能医疗国际会议&#xff08;ICHIH 2024&#xff09;2024 International Conference on Health Big Data and Intelligent Healthcare 会议简介 2024健康大数据与智能医疗国际会议…

ADS项目笔记 1. 低噪声放大器LNA天线一体化设计

在传统射频结构的设计中&#xff0c;天线模块和有源电路部分相互分离&#xff0c;两者之间通过 50 Ω 传输线级联&#xff0c;这种设计需要在有源电路和天线之间建立无源网络&#xff0c;包括天线模块的输入匹配网络以及有源电路的匹配网络。这些无源网络不仅增加了系统的插入损…

客厅打苍蝇fly测试总结1116

项目介绍:本项目是关系食品安全重大项目&#xff0c;针对屋子里有苍蝇的问题&#xff0c;通过分析苍蝇特性及对场景分类&#xff0c;设计测试用例16条&#xff0c;有效击杀苍蝇17头&#xff0c;房间里面已经看不到苍蝇的活动痕迹。比较传统蚊拍击打容易在物体表面形成难看且赃的…

物理hack

声明 声明 文章只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3fb;作者简介&#xff1a;致力于网络安全领域&#xff0c;目前作为一名学习者&#xff0c;很荣…

go 集成swagger 在线接口文档

安装swaggo go install github.com/swaggo/swag/cmd/swaglatest 编写swag import ("github.com/gin-gonic/gin""goWeb/internal/service""goWeb/model/response" )// UserRouter 路由 func UserRouter(ctx *gin.RouterGroup) {ctx.GET("/…

学习threejs,使用第一视角控制器FirstPersonControls控制相机

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️第一视角控制器FirstPerson…