实习大学生如何在Purple Pi OH鸿蒙开发板下调试Android串口?

news2024/11/27 10:26:11

本文适用于Purple Pi OH在Android固件后串口的开发与使用。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。

该主板主要针对学生党,极客,工程师,极大降低了开源鸿蒙开发者的入门门槛,具有以下几点优势:

  • 支持开源鸿蒙/Linux /Andriod 11/麒麟,兼容树莓派 ;

  • 四核A55,最高1.8G主频 Mali G52-2EE GPU ;

  • 支持OpenGL/CL/Vulkan/1T NPU/8MISP ;

  • 支持TensorFlow/MXNet/PyTorch/Caffe ;

  • 支持1*千兆以太网、3*USB2.0、1*USB3.0、3*UART、2*SPI、2*I2C、28*GPIO、1*MIPI DSI、1*HDMI ;

  • 支持OpenHarmony3.2/4.0/4.1版本,开放SDK源代码 ;

  • 活跃的开发者社区, 更多牛人在线技术支持 ;

  • 超小尺寸,极致性价比,只需249元 ;

1、介绍

今天的文章主题是分享与探讨关于Purple Pi OH开发板烧写Android 11固件后串口的开发与使用。

基于嵌入式开发的步骤,每个模块的开发与使用前都需要测试其单独工作时的状态是否正常。因此我们通常上来就会直接使用USB TO TTL串口模块(下文称CH340)连接Purple Pi OH开发板的RX、TX引脚,然后使用PC机的串口调试助手对其进行收发数据。

2、PC直连Purple Pi OH测试串口

接下来我将详细介绍PC通过CH340连接Purple Pi OH开发板后测试串口是否正常,若此方法您已使用并且还是无法打开串口,可以跳过此小段直接看后续的方法。

2.1 CH340驱动安装

在连接CH340模块至电脑时,很多新手甚至老鸟都会遇到很多奇奇怪怪的问题,基本最终的表现都是“设备管理器”中无法正常显示CH340所在的端口,如下图所示:

图片

现在我来分享如何排查PC无法识别CH340的可能问题:

1. 驱动未安装:当“设备管理器“显示未知设备并且图标上带有黄色感叹号时,我们首先需要检查我们的PC机是否安装了CH340对应的驱动,安装方法如下:

a) 下载CH340驱动安装软件,一般在网上一检索就可以下载到

图片

,我们双击打开后,页面如下图所示:

图片

b)  安装之前先点击卸载,这是为了防止电脑之前有驱动残留的数据,卸载完毕后我们再点击安装即可。

2. CH340模块本身损坏:CH340插入USB口时,模块本身会有红色PWR灯亮起,若不亮可能是模块本身损坏。

3. 扩展坞或PC主板USB口损坏:如果上述的方法无法解决,我们也应该考虑是否是扩展坞或者PC主板USB口损坏,此时我们需要更换USB口甚至更换另一台PC机插入排查是不是这个问题。

4. 开发板连接着CH340导致无法识别:导致这种现象的原因有很多种,可能是您使用开发板给CH340提供了错误的供电,当供电不稳定或者电流不足有可能会导致CH340无法正常工作,因此我们通常只连接CH340和开发板的GND、Tx、Rx引脚。还有可能是开发板硬件资源与CH340有冲突导致无法识别。甚至是开发板电路设计问题,即没有按照CH340规范来设计电路等原因。

2.2 硬件连接

1. 将CH340插入PC机USB口,打开“设备管理器”

2. 在设备管理器列表中,找到“端口 (COM & LPT)”类别,展开它。你应该能看到一个标记为“USB-SERIAL CH340”(或类似名称)的设备,旁边会显示它的 COM 端口号,比如 COM6。

图片

若成功显示,即代表CH340模块正常。

3. 接下来我们需要将CH340的RX和TX分别连接在Purple Pi OH开发板的TX和RX脚上,在连接时可以根据背后丝印来判断是否连接正确。Purple Pi OH开发板串口节点/dev/ttyS0引脚位置,如下图 所示:

图片

     

       至此我们的硬件连接就完成了,接下来可以开始软件测试串口步骤。

2.3 软件测试

1. 第一步我们首先需要进入Purple Pi OH开发板的命令行终端,可以通过ADB连接到其中。ADB的使用方法可以参考触觉智能官网产品资料中的4.2章节,链接如下:

https://industio.yuque.com/mdtih8/gyzv1h/uecrhad89197uh01?singleDoc#aOLed

2. 第二步我们进入到命令行后,使用”su”切换为root身份,通过执行“dmesg | grep tty”命令查看系统启动时识别到的串口设备,再使用 stty 命令检查和设置串口参数,例如”stty –F /dev/ttyS0 115200”将串口节点波特率设置为115200.

图片

3. 第三步我们打开SSCOM或者类似的串口调试助手,选择“设备管理器“中识别到的COM口,配置波特率为刚刚使用stty命令设置的波特率,同时设置数据位、停止位、校验位以及流控制参数分别为8,1,None,None,随后点击打开串口,如下图所示:

图片

4. 如果此时一切顺利,我们便可以通过SSCOM与Purple Pi OH开发板互相收发串口信息,发送数据使用指令”echo “test” > /dev/ttyS0”,查看开发板接收到的数据使用”cat /dev/ttyS0”,此时SSCOM发送数据到开发板,开发板会将串口数据回显至SSCOM,如下图所示:

图片

2.其他常见问题

1. 数据呈现乱码或者\0\0\0…”波特率设置不对,使用stty修改开发板串口节点波特率后再次尝试。

2. 怎么查看串口节点:通过命令”ls /dev/tty*”查看设备串口节点,通过硬件规格书或者使用手册查询开发板串口引脚或端口位置。

3. 设备节点无法操作:通过”ls –l /dev/tty*”查看是否权限不足,通过su切换管理员后使用”chmod 666 /dev/ttyS0“修改文件读写权限。

4. 用户使用自己的app无法打开串口节点:先查看自己的app是否在Android 11的版本被支持,也有可能app不扫描这个节点名称,可以重新找一个串口助手查看是app问题还是串口节点问题(可以使用Google开源SerialPort)。或者查看串口是否被占用,尝试打开其他串口设备节点。

3、Android 11 SELinux功能

若上述操作无法解决串口无法被访问的问题,我们就需要查看SELinux是否对我们的访问做了限制,接下来我将分享SELinux的概念和处理方式。

3.1 SELinux简介

在基于Android的设备上,SELinux(Security-Enhanced Linux)是一种安全模块,用于强化访问控制策略。SELinux可以通过强制访问控制(MAC)来限制应用程序和系统进程对系统资源的访问。

3.2 SELinux阻止串口被访问的情况

1. 没有正确的SELinux政策如果SELinux政策没有为访问特定串口的进程或应用程序明确授权,那么访问会被阻止。需要相应的SELinux上下文或标签(如u:object_r:serial_device:s0)允许对应用程序或进程访问串口。

2. SELinux处于Enforcing模式当SELinux处于Enforcing模式时,它会强制执行所有的安全策略,并阻止任何违反这些策略的行为。如果串口设备的SELinux标签或访问控制列表(ACL)配置不正确,任何尝试访问这些设备的操作都会被阻止。此时我们可以使用“getenforce“命令直接检查SELinux的模式。

3. 设备文件权限不足:串口通常作为设备文件(如/dev/ttyS0)存在于文件系统中。如果这些文件的SELinux标签设置不允许特定的访问(例如,某个应用需要读写权限但仅被授予了读权限),则访问会被拒绝。

3.3 解决SELinux串口访问问题

要解决由SELinux导致的串口访问问题,可以采取以下步骤:

1. 检查SELinux状态使用“getenforce“命令查看SELinux的当前模式。如果是Enforcing,系统会强制执行所有策略。

2. 查看和修改SELinux政策使用”audit2allow”查看由于SELinux政策被拒绝的相关日志,以了解为什么访问被拒绝。根据需要调整或创建新的SELinux政策。这可能需要深入了解SELinux政策语言,并使用如semanage和semodule等工具。

3. 临时切换到Permissive模式作为临时解决方案,可以将SELinux设置为Permissive模式,这样SELinux不会阻止任何操作,但会记录所有违反政策的行为。可以使用“setenforce 0“命令来实现,如下图所示:

图片

4. 于安卓源码中关闭:修改安卓源码中device/rockchip/common/BoardConfig.mk 的BOARD_SELINUX_ENFORCING := false;

5. 确保有适当的设备文件权限:确保应用或进程有正确的权限来访问串口设备文件。使用ls -l查看设备文件的权限和所有权。

购买链接

Purple Pi OH 购买链接

https://m.tb.cn/h.g1qerYc?tk=ahOAWGe64ky

图片

Purple Pi OH已过XTS兼容性认证

图片

好啦,关于Purple Pi OH开发板串口使用的分享今天就到此为止啦。非常感谢大家的耐心阅读,祝大家生活顺利,代码一调就通!

END

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

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

相关文章

如何利用甘特图来提高资源的是使用效率?

在项目管理中,甘特图是一种常用的工具,用于规划和跟踪项目进度。它通过条形图的形式展示项目的时间表和任务依赖关系,帮助项目经理和团队成员清晰地了解项目的时间线和进度。通过合理利用甘特图,可以显著提高资源的使用效率&#…

【话题】软件开发的航海图:程序员的实用神器探秘

大家好,我是全栈小5,欢迎阅读小5的系列文章,这是《话题》系列文章 目录 背景一、代码编写二、版本控制三、测试与调试四、部署与运维五、总结文章推荐 背景 在软件开发的广阔海洋中,每一位程序员都是一位勇敢的航海家&#xff0c…

安卓手机数据恢复全攻略:从备份到专业软件一网打尽!

随着科技的飞速发展,我们的生活中越来越离不开手机。然而,在使用手机的过程中,我们可能会遇到数据丢失的问题。对于安卓手机用户来说,如何有效地恢复丢失的数据是一个值得探讨的问题。本文将为您介绍安卓手机数据恢复的全攻略&…

[笔试强训day08]

文章目录 HJ108 求最小公倍数NC95 数组中的最长连续子序列DP39 字母收集 HJ108 求最小公倍数 HJ108 求最小公倍数 #include<iostream>using namespace std;int a,b;int gcd(int a,int b) {if(b0) return a;return gcd(b,a%b); } int main() {cin>>a>>b;int …

NoSql数据存储:Redis

NoSql 数据存储&#xff1a;Redis 前言安装在Windows上安装Redis在Linux上源代码安装Redis远程连接 基本操作常用命令stringhashlistsetzset SpringBoot整合Redis基本使用项目案例排行榜应用&#xff0c;取浏览量最高TOP N数据的操作需要精确设定过期时间的应用计数器应用Uniq操…

一站式健康管理平台,让健康触手可及

如何有效地管理慢性病&#xff0c;提高患者的健康水平&#xff0c;成为国家和社会关注的焦点。慢病健康管理系统应运而生&#xff0c;以其一站式健康管理平台的特性&#xff0c;让健康触手可及。 一、打破壁垒&#xff0c;以医疗标准做健康管理 慢病健康管理系统不仅打破了医疗…

【多模态】30、GPT4V_OCR | GPT4V 在 OCR 数据集上效果测评

文章目录 一、背景二、测评2.1 场景文本识别2.2 手写文本识别2.3 手写数学公式识别2.4 图表结构识别&#xff08;不考虑单元格中的文本内容&#xff09;2.5 从内容丰富的文档中抽取信息 三、讨论 论文&#xff1a;EXPLORING OCR CAPABILITIES OF GPT-4V(ISION) : A QUANTITATIV…

Faster Ring-Packing via BST and Ring-Switch

参考文献&#xff1a; [GHPS12] Gentry C, Halevi S, Peikert C, et al. Ring switching in BGV-style homomorphic encryption[C]//International Conference on Security and Cryptography for Networks. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 19-37.[GHP…

vue 发布项目

You are not allowed to force push code to a protected branch on this project. 分支做了保护&#xff0c;git中设置允许强制推送

【电路笔记】-无源带通滤波器

无源带通滤波器 文章目录 无源带通滤波器1、概述2、二阶带通滤波器的频率响应3、带通滤波器示例4、总结无源带通滤波器可以通过将低通滤波器与高通滤波器连接在一起制成。 1、概述 无源带通滤波器可用于隔离或滤除特定频带或频率范围内的某些频率。 简单 RC 无源滤波器中的截止…

咸鱼之王游戏攻略:平民怎么起号?

在《咸鱼之王》这款游戏中&#xff0c;即使是平民玩家&#xff0c;也有着许多可以优化的操作&#xff0c;以最大程度地提高收益。本攻略将针对平民玩家的日常操作进行详细解读&#xff0c;包括黑市购买、资源管理等方面的建议&#xff0c;希望对广大玩家有所帮助。 一、黑市购买…

Sublime Text for Mac:强大的文本编辑器

Sublime Text for Mac&#xff0c;一款轻量而强大的文本编辑器&#xff0c;为您的编程和写作工作带来无限可能。它以其简洁的界面和出色的性能&#xff0c;成为Mac用户中备受推崇的编辑器之一。 Sublime Text支持多种编程语言&#xff0c;无论是Python、JavaScript、HTML还是CS…

MoneyPrinter国内版改造

背景&#xff1a; MoneyPrinter 是一个自动生成短视频的开源项目。只需要输入短视频主题&#xff0c;然后就可以生成视频。 在国内环境运行时&#xff0c;框架中使用的youtube、抖音文字转语音等功能无法使用&#xff0c;需要对框架进行国内版改造&#xff0c;使其使用国内网络…

Vue路由开启步骤

1.在控制台输入命令 //控制台下载安装npm add vue-router3.6.5 2.在main.js下导入并注册组件 import Vue from vue import App from ./App.vue//控制台下载安装npm add vue-router3.6.5 //导入 import VueRouter from "vue-router";//注册 Vue.use(VueRouter) con…

巩固学习7

正则表达式 就是用来找到符合模式的字符串&#xff0c;这些模式包括&#xff1a;是什么字符&#xff0c;重复多少次&#xff0c;在什么位置&#xff0c;有哪些额外的约束 找某个字符串 import re text身高:178 体重:168 学号:123456 密码:9527 #在Python中&#xff0c;r前缀用…

【软考高项】四十五、项目管理科学计算之工程经济学

一、资金的时间价值与等值计算的概念 1、资金的时间价值是指不同时间发生的等额资金在价值上的差别。 2、把资金存入银行,经过一段时间后也会产生增值,这就是利息。 例如,在年利率为5.22%条件下&#xff0c;当年的100元与下一年的105.22元是等值的,即100 &#xff08;15.22%&a…

模型 奥卡姆剃刀原则

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。如无必要&#xff0c;勿增实体。 1 奥卡姆剃刀原则的应用 1.1 奥卡姆剃刀原则在工程设计中的应用 一家制造智能手机的科技公司“移动创新”在设计其最新型号手机时遇到了一个难题&#xff1a;新款手…

基于FPGA的视频矩阵切换方案

一、单个显示设备的系统方案&#xff1a;会议室只有1个显示设备 会议室的信号源有很多&#xff0c;但是显示设备只有1个&#xff0c;这个时候最佳方案是使用切换器。 &#xff08;1&#xff09;切换器&#xff08;控制方式&#xff1a;遥控器、软件、机箱面板、中控&#xff…

Star CCM+衍生零部件的创建

前言 在一个仿真计算项目中&#xff0c;分配零部件至区域、划分网格后。下一步可以先将需要监测的点、面建立出来&#xff0c;方便后续创建报告。Star中需要创建点、面是在衍生零部件下创建。衍生零部件→右键→新建&#xff08;如下图1所示&#xff09;。通过衍生零部件可以创…

网友用摄像头看猫发现...猫竟然在家偷吃这些主食冻干!

随着科学养猫的普及&#xff0c;主食冻干喂养越来越受欢迎&#xff0c;主食冻干喂养对猫的好处很多&#xff0c;它符合猫咪的天性&#xff0c;可以提供全面的营养&#xff0c;保持牙齿和牙龈的健康&#xff0c;还有助于维持健康的消化系统。而且适口性非常的高&#xff01;不在…