一、串口连接验证与数据接收关键步骤
- 串口初始化验证
硬件参数匹配性检查
需确保代码中的校验位、数据位、停止位与硬件设备一致。当前代码配置为parity(2)
(偶校验)、dataBits(7)
(7位数据位)、stopBits(2)
(2位停止位),而工业设备常用配置为8位数据位、1位停止位和无校验。建议修改为:
SerialPort serialPort = SerialPort.newBuilder(path, baudrate)
.parity(0) // 无校验(NONE)
.dataBits(8) // 8位数据位
.stopBits(1) // 1位停止位
.build();
权限与设备路径验证
• 检查设备节点/dev/ttyS3
的权限:通过adb shell
执行ls -l /dev/ttyS3
,确保权限为crw-rw-rw-
(所有用户可读写)。
• 若权限不足,需在代码中添加动态修改权限的代码(需ROOT权限):
Runtime.getRuntime().exec("chmod 666 /dev/ttyS3")
- 数据接收与显示实现
UI更新方法优化
在updateUI
中显示接收数据时,需避免高频更新导致的卡顿。建议添加数据缓存和定时刷新逻辑:
private val dataBuffer = StringBuilder()
private fun updateUI(data: String) {
dataBuffer.append(data)
// 每200ms刷新一次UI
if (System.currentTimeMillis() - lastUpdateTime > 200) {
textView.text = "接收数据:${
dataBuffer.toStr