串口的那些事

255 阅读5分钟

串口是什么?

一种常见的通讯接口,Android设备和外部硬件通信通常使用这个

长这样

image.png

上面的是公口,下面的是母口

先通起来?

怎么先玩起来呢?就是把自己发送的再发回给自己。

准备几个硬件:两个usb转串口(公头),一个母对母转接头(可以自己买M6接头自己接线)

公司里有一转四的串口头,借来用了,母对母的转接头是硬件部的妹子帮我接的

image.png

接上、转接头的USB接头也查电脑上,usb插电脑就不上图了

image.png

打开调试工具(sscomv5.13.1)

image.png

波特率,两边选一样的,不然无法通信

选好串口,我这是com8和com9

之后打开串口,这个就可以发送了

image.png

看,这样就通了,soeasy

电脑串口接设备

上面那一波有用吗?完全没有,自己发自己收,只能说你的串口OK和你入了串口的大门,接下来看电脑和设备连接,我选的是胎压设备,为什么选择这个呢?因为最近就做这个,手头上有啊。

image.png

看,这个公口,需要我的usb转rs232也是公口,接不上,需要母对母转接头,但这个直接使用上次那个母对母转接头是不可以的,因为上次母对母是交叉接,这次需要直接头(t-t,r-r),硬件部心灵手巧的妹子用M4头帮我焊了一个

聪明的小朋友会问,为啥不把刚的母对母接头rx和tx线对掉一下?

答:很聪明,是可以的,而且在妹子给我准备新口前我就是这么做的,就是每次更换rx tx太麻烦才让重新弄一个,但又没有M6的了,只能用M4焊一下咯,这是个小细节,不用在意

image.png

把接头接起来

image.png

接好后,选好波特率(胎压监测的波特率是19200),开启串口,数据就来了,(胎压数据是主动上报的)

image.png

来来来,翻开胎压的交互协议

image.png

我们给设备发送

55 AA 0A 13 00 01 00 00 00

告诉胎压设备,一秒上传一次胎压(细心的同学说怎么没有校验位,这还要自己算吗?让工具做)

回到串口工具,配置好校验位和发送数据,点击发送后,数据哗哗哗的过来了,1秒一次

image.png

本次调试成功

Android设备串口连电脑

可以直接用手机吗?

不行,

  1. 手机没有串口设备
  2. 设备必要root

所以只有定制系统才会做串口开发,我的话之前接触到的设备包括

Android pos机,Android售货机,Android电子秤,Android分拣扫码枪

无一例外,都是定制系统,想用手机?认命吧,想学习却没有设备就去淘宝买个开发板

买个没有屏幕的,便宜点,然后使用scrcpy软件把设备显示投屏到显示器上

好了,开始了

image.png

妹子帮我从设备中跳线引出了一个串口母口,如果是开发板就直接有串口,就不用这一步了,这个需要硬件同事支持

准备接线:

image.png

中间加了个TTL<->RS232转接头,是因为Android设备使用的ttl电压(3.3v),电脑使用rs232电压(5v)需要转换

开始通讯:

等等等等,Android设备怎么发送和接收数据呢?谷歌为我们准备好了,很老的代码,我没有搞定,我搞了享学课堂的代码,最近Android太卷了,不学习不行,所以网上报了培训,不学习不行,好了,不聊这些,回到正题上

如下图,通信没有问题,发送接收的数据一一对应,什么?61 61 63 64和abcd对不上?你傻啊?哈哈

image.png

Android的串口代码我放git上了,地址在

github.com/pvting/Demo…

亲测可用

接下来才是重头戏

Android接串口设备(有坑)

有了上面的铺垫,我们就直接接线

image.png

胎压数据会直接过来,我们在这等数据

等啊等,怎么没数据过来,我着急了,难道是我的接线方式不对,检查了一遍还是不对

image.png

目前设备接电脑:OK

Android接电脑:OK

Android接设备:NG

感觉说不通啊,这个问题我求助了驱动的同事,也整了半天才

最后问题还是解决了,原因暂不去做分析,只摆事实

image.png

在上图接线的基础上,添加一个公对公、一个母对母(rx-tx交叉接头)接头,这样就可以出数据了,我一直认为公对公和母对母连接不是就抵消了嘛,原来内部不是那么简单,需要多思考下,硬件妹子说,这样的话,就不用公对公和母对母,直接两头接线直接接对即可。

看~,数据像流水一样来了

image.png

总算搞定了,小小串口搞了几天才搞定,也是有收获的,棒棒的

总结

本文的大体结构是,电脑连电脑,电脑连设备,电脑连Android,Android连设备,这几个步骤都会也就意味了排查问题就OK了,串口搞定,物联网so easy的