解析不定长字符串(以回车换行结尾)
注意
每个页面仅建议在一个定时器中读取串口缓冲区的数据,在多个定时器中读取串口缓冲区的数据容易照成逻辑混乱。
注意
字符串需要以 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}
解析不定长字符串(以回车换行结尾)-样例工程下载
演示工程下载链接: