求助 苹果猫 关于摘数据问题
我用的是有方的M590,模块建立完成TCPIP后给服务器发数据,首先先检查缓冲区大小,模块返回的消息和服务器给模块发送的数据有时候会在一起,得进行摘数据,我在论坛看到了你回复的帖子,思路是定时中断,环形列队,状态机。我对中断和状态机能理解,对环形列队与他俩进行配合的思路不是很了解,能讲解一下吗 环形队列或者叫FIFO,这个,建议你找本清华大学的《数据结构C语言版》看一下,里边有讲的。其实就是个数组外加4个变量,一个是读取下标,一个是写入下标,一个是字符计数,一个是溢出标志。每次往里写一个字节,写入下标加1,计数加1,写入下标达到数组最大下标后归0,计数变量达到数组最大容量后溢出标志置位。读取时按字节读,每次读取完将读取下标加1,计数下标减1,读取下标达到数组最大下标后归零。
大概就是这个意思,将这个数组处理程序交给串口接收中断来处理,自己的程序就不再干涉它的运行了,只要不停的查看队列里边的计数器,一旦有字符,就读取到自己的缓冲区中进行解析。这样程序间耦合度降低,万一溢出不会跑飞,而且兼顾了外设和MCU的速度差异。 回复【1楼】Appcat 苹果猫
-----------------------------------------------------------------------
没有贴别明白,这对摘数据有什么优势呢? 没有领会要领
页:
[1]