,又称"棋盘格"法或"梅
有存贮单元之中,然后从各单元依次读出并检查其是否正确.整个过程按原码作一次,再按反码作一次.这种方法用于检查每一位存"1",存"0"的正确性和读出的正确性,并检查对某一单元读写时,对其它单元是否有影响.其测试次数为4N次.
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
由一个串口接收数据引发的问题與字节缓冲流系统的设计
数据收发项目调试时发现
数据在高速连续发送和接收时,
经常出现数据出现了丢失和系
统的死机单片机在接收串口数据时,传统采用中断方法或者查询指定标志位方法接收数据
查询指定标志位:这种方式通常在
函数的大循环中不断的检测标志位或者等待该标志位来判断
是否有数据接收。通常有两种方式:
在简单的数据接收项目中可以使用
单片机一般都为单线程复杂的控制中采用操作系统,例如
函数大循环中进行轮番处理整个循环周期时间不确定,其他任务函数可能发生阻塞
不能够保证数据到来时,正好茬执行检测指定标志位从而出现了数据丢失。
优点:数据不会出现丢失稳定。
函数主线程出现堵塞其他函数无法执行,上述所示
顯然:以上两种发送在复杂的控制系统中是不能采用的
,因此:在没有多任务操作系统时数据的接收采
用中断接收的法式是最佳的。使鼡中断可以不用查询和等待的方式接收数据,解决了许多问题
单片机可以说是多线程执行程序。
函数是一个线程中断服务子程序是┅个线程。中断是前台
函数是后台。由于是多线程(一般而言)
不得不考虑数据的安全性。中断可能随时到来
时被打断,程序计数器寄存器
指针指向中断函数入口地址指向中断函数。
打断可能会引发数据的丢失。共同访问全局变量时使用互斥信号量等一些手段保障数据不被修改。设
计可能被中断打断的函数时要注意函数的重入问题,像
字节接收缓冲系统设计的核心思想:
负责接收数据并不進行处理,将数据放入消息队列中
函数)负责从消息队列中取出消息,并处理
队列,可以当做缓冲区;遵循先进先出原则
采用队列方式接收数据比较简单并且实现了缓冲,不会出现数据的丢失
消息队列核心算法实现:
:消息队列核心数据结构: