导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[yenongqing]串口求助



No.105248
作者:yenongqing
邮件:yenongqing@163.com
ID:76232
登陆:2次
文章数:3篇
最后登陆IP:125.76.157.10
最后登陆:2007/8/11 15:47:18
注册:2007/4/27 14:25:43
财富:116
发帖时间:2007/4/27 14:27:57
发贴者IP:222.90.17.64
标题:yenongqing:串口求助
摘要:No.105248串口求助 做串口通讯时 有个问题向大家请教:
写了一个接受中断函数
void getchar() interrupt 4 using 3
{
  u_char i=0 ;
EA=0;   
if(RI==1)
{
  temp=SBUF;  RecCharString[i]=temp;  i++;RI=0;
  }
if(i==8)
{  P3_4=1;
   if( RecCharString[0]==0x5e)
  {
     if( RecCharString[1]==0xb0)//心跳
     {
        if( RecCharString[2]==0x00)
        {
            if(RecCharString[3]==0x04)
            {
              if(RecCharString[4]==0x00)
              {
                if(RecCharString[5]==0x00)
                 {
                  if(RecCharString[6]==0x01)
                   {
                       if(RecCharString[7]==0x12)
                         {
                           Xintiao=1;i=0;
                          }
                   }
                  }
              }
            }
        }
     }
  }
}

EA=1;

结果整个程序单片机无法执行
去掉这个中断函数
其他的程序都可以执行
整个程序:
#include   <reg51.h>  
#define u_char unsigned char
#define u_int unsigned int
#define StringWidth 4
sbit  P2_7=P2^7;
sbit  P2_6=P2^6;
sbit  P2_5=P2^5;
sbit  P2_4=P2^4;
sbit  P2_2=P2^2;
sbit  P2_1=P2^1;
sbit  P2_0=P2^0;
 sbit  P3_6=P3^6;
 sbit  P3_5=P3^5;
 sbit  P3_4=P3^4;
u_char temp; u_int ui;
u_char data SendCharString[StringWidth]={0x5e,0x03,0x00,0x04};
u_char data yangan[17]={0x5e,0x11,0x00,0x11,0x99,0x99,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
u_char data fanyangan[17]={0x5e,0x12,0x00,0x11,0x99,0x99,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
u_char data hongwai[4]={0x5e,0x13,0x00,0x04};
u_char data fanhongwai[4]={0x5e,0x14,0x00,0x04};
u_char data DString[9]={0x5e,0x80,0x00,0x09,0x51,0x52,0x53,0x54,0x55};
u_char data RecCharString[8],CheckSum[StringWidth];
u_char data  k,ro,d,f,flag=0,count=0,wanglo=0,Xintiao=0;
u_char data  kaiguan0=1,kaiguan1=1;
u_char data  fankaiguan0=1,fankaiguan1=1;
u_char data xintiaozhi[11]={0x5e,0x10,0x00,0x0b,0x99,0x99,0x99,0x00,0x00,0x00,0x00};

void delay1ms(void)
{
u_char data i;
for(i=0;i  <=250;i++)
 {;;}
}

void delay10ms(void)
{
u_char data j;
for(j=0;j  <=10;j++)
 {delay1ms();}
}
void send_char(u_char ch)
 {
   EA=0;
   SBUF=ch;
   while(TI==0);
   TI=0;
   EA=1;
 }
void send_string(u_char *str, u_char strlen)
 {
    u_int k;
  for(k=0;k  <strlen;k++)
   send_char(*(str + k)) ;
 }

void JSCheckSum(u_char *str, u_char strlen)
 {
      u_char i;
   u_int chushu=0,chushu1=0,chushu2=0,chushu3=0, sum=0;
   for(i=0;i  <strlen;i++)
     sum=sum+str[i]; ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:7276毫秒 查询8次