串口通信知识总结

最初的APP只有当接收到串口数据,就append显示在文本框中,没有其他的功能。很无奈,很多东西都需要自己去摸索,比如说115200波特率在通信中的作用,一般来说是每秒可以传输7200字符的信息(通信效率假设为50%),发射模块与接收模块的波特率要设置为一样,才不会接收到乱码。串口通信中肯定会出现信息丢失的情况,在设计APP时必须考虑这个因素。在APP中我添加了保存文本、后台运行、接收完毕清空的功能。接收模块接收数据如何保存,最初是用子线程接收数据,转化为字符串数据,再通过异步消息处理机制发送给handler处理,后来改用bundle来传递信息,因为需要传送的信息不止一个,单单使用msg.obj,只能传递单个消息,即使自己强行定义一个公共类,里面赋予两个成员变量,通过new公共类的方法传递需要的信息,虽然说可以向上转型obj类型,再通过msg.obj传输出去,并在handler中,再通过向下转型重新还原该信息,语法上讲得通顺,但在实际操作时,APP程序会卡死,不知道怎么回事。最好的办法是用new bundler来传递信息。这个在实际操作中可以顺利执行。如何判断接收数据停止呢?我是用计数器的方法解决,在程序开头定义一个公共类型的count变量,每次读取到空字符串,变量加一,当变量增加到20时,就可以开始清空操作啦。整个过程花费了我2个月时间,先是一个月的时间看java基础、android语法视频,然后练手半个月,每一次都是苦思出新方法新方法,然后验证时犯错、犯错、再犯错。经历了很多的绝望,最后的结果勉强可以接受,因为最后的解决措施,是我在先前犯错方法的综合,一分耕耘一份收获,最大的心得就是千万不是埋头苦干,要多问问身边的高手,有时自己半天上网想不通的地方,别人一下子就解决啦。毕竟你绝不是第一个碰到这个问题的人(尤其在你是新手的 收获)。但自己一定要有想法,知识点别人可以解答,但项目功能的完成,绝对是靠自己、靠自己、靠自己,自己的项目问题,别人一般是不会苦思冥想的。

你可能感兴趣的:(APP)