问题描述
我正在使用 USB 连接在 android 中进行串行通信项目。 CH340 电缆的响应在 Modbus 上是正确的,但是当我将它与 android 连接时,它只显示 85 个字符串,而它应该返回 100 个字符串。 我的设置是: Android 设备:Lenovo M10 Tab 另一端串口设备:秦恒CH340
- 要写入的 USB 请求字符串:
var string ="1,3,49,40,20,27"
val spliteString: Array<String> = string.split(",").toTypedArray()
val dataByte = arrayOfNulls<Byte>(spliteString.size)
for (i in spliteString.indices) {
dataByte[i] = spliteString[i].toInt(10).toByte()
}
val bytesArray = ByteArray(dataByte.size)
var i = 0
for (b in dataByte) bytesArray[i++] = b!!
return bytesArray
MyApp.driver.WriteData(bytesArray,bytesArray.size)
- 使用以下方法处理连接
if (MyApp.driver.SetConfig(19200,8.toByte(),2.toByte(),0.toByte(),0.toByte())) {
Toast.makeText(this@MainActivity,"Config successfully",Toast.LENGTH_SHORT).show()
}
来自我正在写入的串行设备的响应:
handler = object : Handler(Looper.myLooper()!!) {
override fun handleMessage(msg: Message) {
readText!!.append(msg.obj as String)
}
}
现在 Modbus 中的响应显示 100 个字符,而在我的 android 中,它显示 85 个字符。
对于连接,我尝试了以下库
https://github.com/felHR85/UsbSerial
但这行不通,当我在 USB 串行端口上写入内容时,响应中没有任何返回。
然后我使用了 http://www.wch.cn/download/CH341SER_ANDROID_ZIP.html 的 CH34xUARTDriver 但它只给了我一个静态的 85 个字符串,而不是应该从硬件接收的字符串。
感谢任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)