第五十九节:串口程序第40,44,45节中存在一个bug,特此紧急公告。

经过网友“intech2008”的提醒,在我之前发表的第40,44,45节串口接收程序中,在计算检验和的地方,存在一个不容易发觉的bug。

原来的是:

  for(i=0;i<(3+1+2+uiRcSize);i++) //计算校验累加和
  {
      ucRcregBuf[uiRcMoveIndex+6+uiRcSize]=ucRcregBuf[uiRcMoveIndex+6+uiRcSize]+ucRcregBuf[i];
  }    

应该改成:

  for(i=0;i<(3+1+2+uiRcSize);i++) //计算校验累加和
  {
      ucRcregBuf[uiRcMoveIndex+6+uiRcSize]=ucRcregBuf[uiRcMoveIndex+6+uiRcSize]+ucRcregBuf[uiRcMoveIndex+i];
  }

由于本连载技术文章在各大论坛发布和被转载,我没法做到处处提醒,不得不专门用一节内容来告知各位读者。

下节预告—–关中断和开中断在多进程临界点的应用。