最近用android_serialport_api开发了一个串口通讯程序,在使用过程中发现android_serialport_api基本构架都有
,不过还有不少的缺陷,缺陷之一是:读取串口信息是阻塞模式,在向串口发出命令后,如果没返回的话,串口将被阻塞
这样,如果在没数据返回的情况,线程将不能安全退出。缺陷之二是:没有停止位、奇偶校验位,停止位的设置。缺陷之三是:如果退出串口通讯后,下位机可能会在此发送信息到端口,下次马上进入时,会有上次残留数据。
在通过网络查找,参考各位大能给的信息,重新修改了SerialPort.c,修改了打开串口参数,满足设置停止位、奇偶校验停止位功能。
修改了端口读取阻塞模式为非阻塞模式,增加一个清除端口数据函数。同时已经编译过了,只要直接调用就行了。
在网上很多大神给的方案,方案多有,大都是源代码的修改,没有编译的。用本案例的话,应该可以完美解决了读取串口的各种情况。
1