CRC校验码的获取有两种方法,可以用查表法,也可以用多项式法计算。
初学者的思路一般是:收到B4就计数加1,当收到2个后开始读后面的SS
xx
之类。
但是这个路子问题很多,容错性很差,容易出现错误死锁。
专业做法是开辟一块缓冲区(简单的话定义一个足够大的数组即可),然后将读取数据和处理数据分开。有能力的可以用双线程,初学者也最好采用事件驱动的模式。
一段代码负责将收到的数据存入缓冲区;另一段代码负责解析处理缓冲区中的数据。
看上去好像挺高大上,其实实现起来真没多难。按照这个思路钻研一下吧,会有提高的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)