搜索
bottom↓
回复: 2

PIC单片机串口地址方式通信问题??难道是PIC的bug???

[复制链接]

出0入0汤圆

发表于 2009-7-11 18:09:02 | 显示全部楼层 |阅读模式
在pic多机通信中,采用9位模式区分数据和地址。

当ADDEN=0,发生和接收均正常。

当ADDEN=1,TX9D=1,接收中断正常相应。

当ADDEN=1,TX9D=0,本来应该不会有接收中断,但是居然接收中断了,而且接收的数据错误。

不知是哪里错了?

请高手看看,谢谢啦!

本人刚刚接触PIC。

# include  <pic.h>
# include "delay.h"
# include<string.h>
# include"sci.h"
__CONFIG( HS & WDTDIS& PWRTEN& BOREN& UNPROTECT );

unsigned char
sci_Init(unsigned long int baud, unsigned char ninebits)
{
int X;
unsigned long tmp;

/* calculate and set baud rate register */
/* for asynchronous mode */
tmp = 16UL * baud;
X = (int)(FOSC/tmp) - 1;
if((X>255) || (X<0))
{
  tmp = 64UL * baud;
  X = (int)(FOSC/tmp) - 1;
  if((X>255) || (X<0))
  {
   return 1; /* panic - baud rate unobtainable */
  }
  else
   BRGH = 0; /* low baud rate */
}
else
  BRGH = 1; /* high baud rate */
SPBRG = X; /* set the baud rate */

SYNC = 0; /* asynchronous */
SPEN = 1; /* enable serial port pins */
CREN = 1; /* enable reception */
SREN = 0; /* no effect */
TXIE = 0; /* disable tx interrupts */
//---------------------------------
    RCIE=0;
    ADDEN=1;
//--------------------------------
TX9  = ninebits?1:0; /* 8- or 9-bit transmission */
RX9  = ninebits?1:0; /* 8- or 9-bit reception */

//-----------------------
  TRISC6=1;
  TRISC7=1;

//--------------
TXEN = 1; /* enable the transmitter */

return 0;
}

void interrupt ccc(void)
{
if(RCIF&&RCIE) //SCI interrupt
{
  TRISD=0;
    // if((RCREG==2)  && (ADDEN==1) ) ADDEN=0;
// if(ADDEN==0)
        PORTD=RCREG;
        TRISC0=0;
        RC0=RX9D;
       // RCIF=0;
}
}

main()
{
  unsigned char i;
  
  GIE=1;
  PEIE=0X1;
RCIF=0;
  sci_Init(9600, SCI_NINE);
  TRISC0=0;
RC0=0;
  TRISD=0;
      
while(1)
{
       TX9D=1;//地址
          RC0=0;
        // TX9D=0;//date
        sci_PutByte(0X55);
  DelayMs(10);

}

      
}

出0入0汤圆

 楼主| 发表于 2009-7-11 18:10:36 | 显示全部楼层
不好意思,上面的RCIE=0应该为RCIE=1

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-9 03:34

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

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