本篇帖子介绍串口随机接收数据的一种方法,
不大众也不通用,但却比较适合某些特定场合,
本文内容可与此篇相对照,
关于串口随机接收不确定字符串的讨论
先说一下项目应用背景
因项目需要,用到了SIM868模块,
需要同时使用两路串口通信,分辨进行GPRS数据通信,
并实时获取GPS定位数据,问题比较棘手(能力有限啊)。
GPRS通信方面,上电初期需要按照一定的指令顺序对SIM868模块进行初始化,
用过SIM相关莫快得朋友都明白,就是固定格式的一堆AT指令,
成功连接服务器后不断发送各种通信数据,包括AT指令以及一些通信数据,
GPS方面需要从大片的串口数据中返回我们需要的某一条指令数据,
并截取指定位置的数据,上传至服务器
例如下图(需要截取指定的定位数据)
面临的问题:
1、AT指令设计数十条,需要按顺序发送,并队返回得响应进行对应的处理,
指令顺序切不可乱,返回的结果要可靠获取,并作出响应,
2、AT指令与自定义格式数据存在混杂,并可能出现响应延迟,
导致“答非所问”的现象。
3、串口发挥数据量较大,且长度格式不定,要截取的有用数据却不多,
而且要求尽可能少出错
4、通信频率较高,此处使用115200bps,单片机资源有限,STM32仅有72Mhz,
同时要进行一些其他工作。
|