请问这个是什么设备?如何与android进行数据交互?

囊大药 2017-11-16 11:34:27
因为不懂单片机,也不懂硬件交互,上头交代要做一个android手机端控制单片机数据读写的app,有很多疑问,所以在这里请教下。
首先,这个设备是沁恒的CH34X,还是prolific的LP2303?
其次,单片机数据的读写是通过类库(https://github.com/mik3y/usb-serial-for-android)中的Get()、Set()、Write()、Read()方法就可以实现吗?还是需要根据芯片内置写入的协议(接口)来重新写数据转换读写代码?
最后问一下,电脑驱动是用pl2303_Installer.zip驱起来的,手机用OTG线免驱连接,这是连接上设备读出来的一些信息:Vendor 067B 、 product 2303 、Prolifc Servial Driver等等,做硬件的人说这个设备应该是CH340或者CH341,那这个设备到底是什么呢?我不明白的是CH340和LP2303是同类关系还是包含关系,所以很迷惑。。。

设备图片:



在这里先感谢回帖的各位大神们
...全文
1006 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxj001 2017-11-24
  • 打赏
  • 举报
回复
Write()方法写数据的时候可以看到TXD、RXD的灯都是会闪,并不一定表示读写都OK了,但是至少说明你的写Write()方法有动静,只有通过read()方法,读到你开始写出的数据,才说明该模块在android端的读写都OK了。 至于到单片机端,android工程师是不需要去干涉的,通常,我们通过协议解决,也就是单片机工程师和android工程师互相协商,订立一个通讯协议,建立一个包含起始、命令、数据长度、数据、校验、终止内容的协议。协议制定好了后,双方互不干涉可以开始工作。到时候,如果双方都没问题,连接上就可以实现所有程序目标了。
worldy 2017-11-23
  • 打赏
  • 举报
回复
这个是USB转串口,android设备一般不能直接通信
囊大药 2017-11-23
  • 打赏
  • 举报
回复
感谢各位专家的回复,我是做安卓的,现在已经找到pl2303driver.jar的厂家支持包,用OTG有线进行手机调试,用跳线连接TX、RX回写数据,然后用里面的Write()方法写数据的时候可以看到TXD、RXD的灯都是会闪,是不是代表读写就ok了?还是只是代表这个pl2303转换设备传输ok了,具体的还要看烧进单片机的程序?

其他存储、显示、单片机的硬件设备正在设计中,想了解下手机控制硬件的话是不是这个开发思路:
(android开发人员)android <--> java接口 --> 调用C接口 <--> C写进芯片的控制程序(嵌入式开发人员) --> 设备存储、显示
一直不明白是android工程师直接去开发控制这个硬件?还是android调用嵌入式工程师写进去的接口来控制?


jar包里的Write:(源码太长,直截取了部分)
  public int write(byte[] buf, int wlength)
{
int i1 = 0;

byte[] arrayOfByte = new byte[4096];
if (this.K == null)
{
arrayOfByte = null;
return -1;
}
if ((FlowControl.XONXOFF == this.as) && (!this.at)) {
return 0;
}
while (i1 < wlength)
{
int i3 = 4096;
if (i1 + i3 > wlength) {
i3 = wlength - i1;
}
System.arraycopy(buf, i1, arrayOfByte, 0, i3);


int i2 = this.K.bulkTransfer(this.N, arrayOfByte, i3, this.U);
if (i2 < 0) {
return -1;
}
i1 += i2;
}
return i1;
}
thinkers 2017-11-23
  • 打赏
  • 举报
回复
通用linux如果已经识别了这个设备,会增加某个tty的设备,然后 就可以像其他设备一样open和wr/rd它了。
of123 2017-11-23
  • 打赏
  • 举报
回复
这个模块是开发阶段使用的工具之一。即开发底层单片机设备时,可通过它在 PC 端直接调试。当然,如果 PC 机有串口,也可以使用 232 电平转移模块来挂接。
Rampage_SS 2017-11-22
  • 打赏
  • 举报
回复
从我的经验来看是个usb转串口模块PL2303,如果明确只是需要android,不需要iOS那就可以直接让android手机连接这个模块,中间需要一个OTG转usb,然后另外一端就是串口接到单片机就OK了。如果需要iOS的话,有线方式会比较麻烦,需要苹果认证这个硬件。所以一般通用方式是蓝牙或者wifi,那这个模块就没必要用了。
of123 2017-11-22
  • 打赏
  • 举报
回复
应该是这样: 1 你的设备应该是通过串口(UART)与主机连接的。 2 你可以通过这个 U 转串的“桥”,在 PC 上检测设备。 3 要与 Android 手机连接,要通过一个蓝牙模块。此模块与你的设备是 UART (串口)连接。你要在 Android 手机端写一个 App,通过手机蓝牙与蓝牙模块通讯。 网上有类似的 App,你可以下载一个做例子。
TFBGIAAC 2017-11-21
  • 打赏
  • 举报
回复
这是一个USB串口转换的器件。尼需要弄一个存储芯片才行。
tianxj001 2017-11-21
  • 打赏
  • 举报
回复
prolific的LP2303的驱动不能驱起CH34X的,所以你这个设备应该是prolific的LP2303无疑,CH34X和LP2303他们是同类,可不是包含关系哈。 这是一种典型的USB-UART的设备,驱动完成后,操作系统可以将该设备当作一个典型的串口来用,所有系统串口操作函数都可以正确执行。而5针接口的RX TX 可以接单片机的串口通信端口,操作系统端口读函数,可以读到单片机发送的串口数据,操作系统的端口写函数,可以让单片机RX端口接受到上位机写的串口数据。
wenqing89 2017-11-16
  • 打赏
  • 举报
回复
这个芯片没存储,就是个转换IC,需要外加单片机控制器类似的芯片才能实现一些控制功能。
wenqing89 2017-11-16
  • 打赏
  • 举报
回复
有驱动就好说了,说明可以透传数据了,串口设定的参数和单片机保持一致,比如波特率、停止位之类的。至于通信协议肯定要和下层单片机的沟通,这是你们自己定义的。
囊大药 2017-11-16
  • 打赏
  • 举报
回复
你好,lp2303的厂家提供sdk我找到了,只是根据这个就可以进行读写了吗?我在其他群里问的说这些里面还有硬件开发人写的东西,要根据他们写的协议/接口才知道如何应该怎么读写数据。。。。还有这个芯片有存储区吗?
wenqing89 2017-11-16
  • 打赏
  • 举报
回复
pc安装的是pl2303的话,那肯定就是PL2303这个芯片啊,这个USB转串口的芯片,如果芯片厂家提供安卓/linux底下的驱动,你直接加载,然后读写串口的数据应该就行了

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧