当前位置: 首页 > news >正文

雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能

雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能

1. 修改VirtualBox配置文件映射串口

模拟器配置文件vms/leidian0/leidian.vbox

在UART标签下增加(修改完成后需要将leidian.vbox修改为只读)

<Port slot="1" enabled="true" IOBase="0x2f8" IRQ="3" path="COM2" hostMode="HostDevice"/>
<UART><Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" path="C:\Users\Administrator\AppData\Roaming\ChangZhi2\kernel.log" hostMode="RawFile"/><Port slot="1" enabled="true" IOBase="0x2f8" IRQ="3" path="COM2" hostMode="HostDevice"/>
</UART>

参数配置可参考VirtuaBox User Manual的Serial Ports章节。
Port:

COM1: I/O base 0x3F8, IRQ 4
COM2: I/O base 0x2F8, IRQ 3
COM3: I/O base 0x3E8, IRQ 4
COM4: I/O base 0x2E8, IRQ 3

Mode:

Disconnected
Host Device
Host Pipe
Raw File
TCP

2. 重启模拟器,检查串口是否可用

重启模拟器后,通过命令查看是否生效

  • dmesg查看内核串口初始化信息
$ dmesg | grep ttyS1
<6>[    0.837015] 00:05: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
  • setserial查询串口信息
# setserial -g /dev/ttyS1
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
  • stty打开串口
# stty -F /dev/ttyS1
speed 9600 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -imaxbel
  • echo写入数据测试
echo "test" > /dev/ttyS1

3. 编译CSerialPort的android测试程序

$ git clone --depth=1 https://github.com/itas109/CSerialPort.git
$ cd CSerialPort/example/CommAndroid
$ gradlew assembleDebug> Task :app:externalNativeBuildDebug
Build cserialport_arm64-v8a
Build cserialport_x86BUILD SUCCESSFUL in 28s
28 actionable tasks: 28 executed

4. 模拟器运行CommAndroid

  • 修改串口权限
# chmod 666 /dev/ttyS1
  • 运行CommAndroid测试串口收发

选择可用串口 - open - send

http://www.lryc.cn/news/530313.html

相关文章:

  • 四、jQuery笔记
  • 流浪 Linux: 外置 USB SSD 安装 ArchLinux
  • 1.For New TFLite Beginner
  • 吊打同类软件免费又可批量使用
  • MiniMind——跑通项目
  • 单细胞-第五节 多样本数据分析,打分R包AUCell
  • 【零拷贝】
  • 深入解析 C++ 字符串处理:提取和分割的多种方法
  • 计算机组成原理——存储系统(一)
  • Jenkins未在第一次登录后设置用户名,第二次登录不进去怎么办?
  • 论文和代码解读:RF-Inversion 图像/视频编辑技术
  • 大模型培训讲师老师叶梓分享:DeepSeek多模态大模型janus初探
  • 2025最新源支付V7全套开源版+Mac云端+五合一云端
  • 稀疏混合专家架构语言模型(MoE)
  • 比较热门的嵌入式项目
  • 牛客网 除2!(详解)c++
  • 被裁与人生的意义--春节随想
  • ASP.NET Core 中间件
  • Pyecharts之图表样式深度定制
  • git笔记-简单入门
  • Joplin 插件在Vscode中无法显示图片
  • python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
  • pandas分组
  • 爬虫基础(三)Session和Cookie讲解
  • 【Super Tilemap Editor使用详解】(十三):快捷键指南(Keyboard Shortcuts)
  • 【Leetcode 每日一题】119. 杨辉三角 II
  • 简单看看会议系统2(时延分析)(TODO)
  • Linux中 端口被占用如何解决
  • OpenAI o3-mini全面解析:最新免费推理模型重磅发布
  • C++:虚函数与多态性习题2