本发明涉及通信技术,特别是一种Android上层客户端和STM32底层通信方法。
背景技术:
信息转换是Android上层客户端和STM32底层通信控制的关键,Android上层客户端不能直接通过串口和底层STM32通信。在串口通信中,数据很容易丢失。这是一个非握手协议,即发送方不知道接收方是否收到发送的信息。
技术实现要素:
本发明的目的是解决:Android上层客户端不能直接通过串口和底层STM32进行通信的技术问题。
本发明提供了一种Android上层客户端和STM通过串口和底层通信,包括以下步骤:
步骤S100:Android上层客户端STM32底层信息传输包括以下步骤:步骤S110:使用USB转RS微型连接线为232USB接口连接平板USB接口用于平板电脑供电和数据传输;普通USB接口接5v电源,为FTID模块和平板电脑供电;RS232接口输出或接受RS232串口数据信息;步骤S120:RS232通用串口信息通过RS232电平转TTL其中采用电平模块max232芯片实现电平转换,最终转换为TTL信息;步骤S130:TTL信息被底层STM32接收。
步骤S200:STM32底层向Android上级客户端发送信息,包括以下步骤:步骤:S210:STM32底层通过各种传感器收集信息;步骤S220:收集到的信息通过TTL转RS232模块转换成RS传输232通用串口信息;采用max232芯片实现电平转换;步骤S230:安卓上层客户端解码显示传输的信息。
本发明的另一个目的是解决串口之间数据传输容易丢失的问题。
该方法传输的信息数据采用符号#,标记数据终止。
该方法传输的信息数据采用符号$,开始标记数据。
本发明提供了模拟握手协议的数据传输格式,使数据传输更加可靠。
有益效果:本发明已实现Android上层客户端和STM32底层控制通信的信息转换有效地解决了上下层不能直接通信的问题,更实用、更简单;数据传输格式模拟了握手协议,使传输更加可靠。
附图说明
图1是本发明实施例提供的基础Android上层客户端和STM系统结构示意图32底层通信方法。
图2是本发明实施例提供的Android上层客户端与STM32底层通信方式的数据包发送格式。
具体实施方法
为了使本发明解决的技术问题、所采用的技术方案和所取得的技术效果更加清晰,本发明将结合附图和实施例进一步详细说明。可以理解的是,这里描述的具体实施例只用于解释本发明,而不是对本发明的限制。此外,需要注意的是,为了便于描述,附图只显示了与本发明相关的部分,而不是所有内容。
本实施例为将Android上层客户端和STM传感器数据传输采用32底层通信方式。首先连接到STM32F103主控板上的各种传感器采集数据,经过主控板进行数据处理之后,通过无线串口模块发送数据到PC端。
PC端运行一个JAVA程序,程序定义串口接口,当无线数传开始工作时,串口就会打开,java该程序可以从串口接收数据。程序收到串口数据后,通过Socket与安卓客户端连接,打开输出流。处理和分发接收到的数据。处理时,进行数据分析,每个数据对应于相应的输出流,并通过输出流传输到Android客户端。并且在Eclipse控制台输出接受的数据以检测是否传输出错。
然后打开安卓客户端,客户通过socket套接字与计算机连接,可相互通信。客户端连接到服务器后,接收服务器端的数据并做出相应的判断和处理。客户端定义了接收和处理不同类型数据的五个线程。同时,将数据存储到数据库中。
具体流程如下:请参考图1STM通过32底层控制通信STM32底层控制-计算机服务器端-Android客户端。这种模式更方便,传输数据也更可靠。
STM32底层通过传感器获取环境参数,包括温度、心率、湿度、烟雾浓度、是否坠落等。然后和电脑和STM底层控制通过无线数传连接到计算机串口,等待计算机服务器端接收。这些数据以自定义的格式传输。格式为“$No,data#”。No为0,表示湿度。No为1表示心率,No为2表示温度,No为3表示烟雾浓度,No表示是否摔倒。
使用计算机服务器端Ecl ipse写的Java程序。当无线数传开始工作时,串口将被定义为串口接口,java该程序可以从串口接收数据。程序收到串口数据后,通过Socket与安卓客户端连接,打开输出流。处理和分发接收到的数据。处理时,进行数据分析,每个数据对应于相应的输出流,并通过输出流传输到Android客户端。并且在Eclipse控制台输出接受的数据,以检测是否传输错误。
Android客户端主要用于提醒用户并向用户提供实时环境信息。客户通过socket套接字与计算机相连,可相互通信。将服务器连接到客户端后,就可以接收服务器端的数据做出相应的判断和处理。用于接受和处理不同类型数据的客户端定义了5个线程。客户端的每个界面都有相应环境参数的正常范围值和相关介绍。如果温度和湿度在正常范围内,则用默认黑体字显示当前的环境湿度。如果不在正常范围内,用红色字体提醒用户注意。类型1是心率。如果在正常范围内,当前心率用默认黑体字显示,弱不在正常范围内,当前心率用红字字体显示,提示过高或过低。建议过高休息,过低检查身体。这些数据和发生的准确时间将存储在数据库中。类型3是烟雾浓度。如果不正常,将烟雾浓度和时间记录在数据库中,以检查是否有烟雾异常。判断类型4是否摔倒。如果摔倒,手机振动提示用户,并将摔倒时间存储在数据库中。这样不仅可以实时显示当前的环境状况,还可以查询是否有心跳、跌倒等异常情况,方便年轻人在一段时间内检查老年人的异常情况。
图2中的数据格式为$No,data#”。No为0,表示湿度。No为1表示心率,No为2表示温度,No为3表示烟雾浓度,No表示是否摔倒,整个通信过程,采用这种数据格式进行数据传输。
最后,上述实施例仅用于说明本发明的技术方案,而不是限制本发明;虽然本发明参照上述实施例进行了详细说明,但本领域的普通技术人员应明白,修改上述实施例中记录的技术方案,或相当于替换部分或全部技术特征,并不使相应技术方案的本质与本发明各实施例的技术方案的范围分离。