搜索
bottom↓
回复: 2

PIC异步串行问题请教

[复制链接]

出0入0汤圆

发表于 2009-5-30 11:38:51 | 显示全部楼层 |阅读模式
本人在做一个485SCI的串行传输,遇到一点问题,想请教请教遇到过的朋友,现象如下:
    主从两块板,主板收集8块IO板的信息,存储在IOS[8]一维数组里面(每一块IO板的信息存进相应的IOS位置中),通过485异步串行通讯把该数组发给从板,存在从板的IOS[8]数组里面,并通过从板相应的IO板显示出来。现在的情况是主板的IO板信息收集进去主板的IOS数组中,并开通了异步传输,能传送到从板的IOS数组并显示出来,但现在发现主板的IO板送过来的信息好像被重复覆盖了(无论是主板的IO板0/IO板1还是其它IO板,只要一改变,从板的所有IO板显示都改变),下面是我的部分程序,请各位给出点意见,谢谢!
   void dealtime()
{
time0++;
if(time0==500)
        {
        time0=0;
        IO_read();
        RA6=1;
        RA7=1;       

    SPBRG=25;//初始化异步串行通信
    BRGH=1;
    SYNC=0;
    SPEN=1;
    TXIE=1;
    TX9=0;
    TXEN=1;
    TXREG=IOS[0];
        }
       
}

void interrupt ISR (void)//中断函数
{
        if(T0IF==1)
        {
        dealtime();
        T0IF=0;
        OPTION=0X01;
        INTCON=INTCON|0X20;
        TMR0=0X06;
        }
       
       
           if(RCIF==1)
        {  
                //RCIF=0;
                IOS[receive_count]=RCREG;
                RCREG=RCREG;
                receive_count++;
        //        RCEN=1;
                        if(receive_count>7)
                        {
                        RCEN=0;
                        receive_count=0;       
                        }
                        return;
        }
       
        if(RBIF==1)
        {
        KEYSCAN_PORTB();
        RBIF=0;       
        }

   if(TXIF==1)
    {
//        TXIF=0;
    TXREG=IOS[++sent_count];
    TXREG=TXREG;
//   sent_count++;
//   TXEN=1;
      if(sent_count>8)
      {
      sent_count=0;
      TXEN=0;
      }
    return;
    }

}

void Slave()
{
        TRISA=0X00;
        RCIE=0;
        RA6=1;
        RA7=0;       
       
        TRISB=0X00;
        PORTB=0X00;
       
        //开接收中断
        SPBRG=25;
        BRGH=1;
        SYNC=0;
        SPEN=1;
    RCIE=1;
    RX9=0;
        CREN=1;
}

准备是用中断查询,发送IOS【8】以及接收IOS[8]都是用中断,定时器定时一段时间后开始一次新的发送。

出0入0汤圆

 楼主| 发表于 2009-5-30 14:28:27 | 显示全部楼层
有没有哪位大侠能给出些意见啊?急急急!

出0入0汤圆

 楼主| 发表于 2009-5-31 10:11:36 | 显示全部楼层
有没有哪位大哥遇到过类似的情况啊!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-8 16:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表