解析不定长字符串(以回车换行结尾)

注意

每个页面仅建议在一个定时器中读取串口缓冲区的数据,在多个定时器中读取串口缓冲区的数据容易照成逻辑混乱。

注意

字符串需要以 0d 0a 结尾

新建一个空白工程

在工程中新建一个定时器tmDecode,tim设置为50,en设置为1,用于定时解析串口数据

新建数字控件t0,txt_maxl设置为200,用于显示解析出来的数据

program.s中的配置如图所示

 1//以下代码只在上电时运行一次,一般用于全局变量定义和上电初始化数据
 2//全局变量定义目前仅支持4字节有符号整形(int),不支持其他类型的全局变量声明,如需使用字符串类型可以在页面中使用变量控件来实现
 3int sys0=0,sys1=0,sys2=0
 4int usize2,length,totalLength
 5//波特率115200
 6bauds=115200
 7//亮度100
 8dim=100
 9//打开主动解析
10recmod=1
11page 0                       //上电刷新第0页

解析定时器(tim为50)中的代码如下图所示

 1if(usize>=2)
 2{
 3  usize2=usize-1
 4  for(length=0;length<usize2;length++)
 5  {
 6    if(u[length]==0x0d&&u[length+1]==0x0a)
 7    {
 8      totalLength=length+2
 9      ucopy t0.txt,0,length,0
10      udelete totalLength
11    }
12  }
13}

解析不定长字符串(以回车换行结尾)-样例工程下载

演示工程下载链接:

《解析不定长字符串以回车换行结尾》演示工程下载