在网上看到了很多RS232串口操作的讲解,发现基本都是root了,但是在实际开发应用中,这个还有有很多限制的,下面是在非root的情况下,使用基于ZE_613设备RS232串口通信的一些使用情况。
(一)RS232标准接口 (这里是借鉴的https://www.cnblogs.com/leestar54/p/6604636.html#wiz_toc_1)
也就是PC电脑上所说的COM口,RS232是负逻辑电平,它定义+5+12V为低电平,而-12-5V为高电平。
正常情况下,PC台式主机机箱都会有一个RS232的通讯接口(别和VGI的口搞错啦!),而目前笔记本几乎不会带有了,所以都是用USB转接口。
UART
及Universal Asynchronous Receiver Transmitter:通用异步收发器,通常ARM嵌入式板子都会集成此接口
UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。
RS232与UART转接
通常嵌入式里所说的串口,是指UART口,但硬件众多,大多数都是基于RS232和UART,有时候这两种口之间需要通讯,最主要不同的其实也就是电平不一样,所以需要转接口,某宝上MAX3232种类繁多。
(二)RS232 Android开发
这里是源代码地址:https://github.com/LeeVanie/USB232Demo
1、添加权限
<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果是7.0以上的手机,对于读写权限需要自己处理,网上很多,这里就不介绍了
2、在需要使用RS232串口的界面添加下面代码
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
3、在res下新建device_filter.xml文件
<?xml version="1.0" encoding="utf-8"?><resources>
<usb-de