2646|2

65

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教,帮我看看这个串口问题,好吗? [复制链接]

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

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 啊
这样的程序怎么写?

谢谢!

最新回复

mark  详情 回复 发表于 2007-7-9 23:30
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

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

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
mark
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表