首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

请问,帮小弟我看看这个串口有关问题,好吗

2012-02-08 
请教,帮我看看这个串口问题,好吗?请教,帮我看看这个串口问题,好吗?voidComInStr()interrupt4//串行口中断{

请教,帮我看看这个串口问题,好吗?
请教,帮我看看这个串口问题,好吗?

void   ComInStr()   interrupt   4   //串行口中断
{
    if(RI)
    {
              if   (j> 4)
                    {
                j=0;        
                receive=1;   //接收标志置位        
              }
        else
              {
                          rece[j]=SBUF;
                  j++;
                      }
              RI=0;
    }
}


main()
{
while(1)
        {
              if(receive)
                  {
                        Sendtex();
                        receive   =   0;                  
                    }                                    
          }
}
大哥:
您好!
我这个串行口中断,还不是很好,
因为,假设开始   发了   '111 '   3   个字符
隔了一段又发   '11 '   2   个字符,总共是   5个字符
那么   j   =   5   ,eceive=1;   //接收标志置位   ,
本来这样的情况是不符合要求的,

那要怎么处理啊,一般是设置多久如果还没有接收到
5   个字符,则   j   重新置   0   啊
这样的程序怎么写?

谢谢!


[解决办法]
接收中断
没未处理的数据
如果J == 0
从新接收未处理数据并接收数据,启动定时
如果J == 4 && 未超时
声明未处理数据接收完成
否则
重置状态

接收

热点排行