⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs-232.txt

📁 设计很好的一个单片机232处理程序
💻 TXT
字号:
uchar rxbuf[4][16];
uchar w_ptr;  //初始化为0
uchar r_ptr;  //初始化为0
uchar frame_ptr; //初始化为0

SIGNAL(SIG_USART0_RECV)
{
  uchar c=UDR0;
  switch(c)
       {
         case 0xff: frame_ptr=1;
                    break;
         case 0xaa: if (frame_ptr==5) 
                      {
                       frame_ptr==0;
                       w_ptr ++;
                       w_ptr &= 0xf;
                       if (w_ptr==r_ptr) {//出现超越}
                      }
		     break;
           default: if (frame_ptr<6) 
                      {
                       rxbuf[frame_ptr-1][w_ptr]=c;
                       frame_ptr++;
                      } else{//接收6字节结构错误}
       }
}


rxbuf是接受缓冲,r_ptr是主程序的处理指针
这个环,按照上面的,最大只有16个数据帧缓冲
主程序处理缓冲,直到r_ptr==w_ptr为止,只要不等,意味着还有数据需要处理
如果在数据流里面,0xff和0xaa的功能不是唯一的话,会出问题
主程序跑完后,r_ptr++;r_ptr &=0xf;只要r_ptr<>w_ptr,继续处理[r_ptr]
主程序在检查if (r_ptr<>w_ptr) {//处理}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -