智能车制作

标题: 新手求助,MC9S12G系列串口问题,发送可以,接收不了 [打印本页]

作者: b8352166    时间: 2014-9-9 10:14
标题: 新手求助,MC9S12G系列串口问题,发送可以,接收不了
程序如下:
//-----------------------初始化SCI0----------------------------//
SciInit()
{
   SCI0CR2=0x00;
    SCI0SR2=0x80;
    SCI0ASR1=0x83;
    SCI0ACR1=0x00;
    SCI0ACR2=0x00;
    SCI0SR2=0x00;
    (void)SCI0SR1;
    PERS=0xef;

    SCI0BDH=0x01;
    SCI0BDL=0x39;         
    SCI0CR1=0x13;
    //ExitCritical();         
    SCI0CR2=0x2c;
}

//----------------------读SCI数据-----------------------------//
unsigned char SciRead()
{
    if(SCI0SR1_RDRF==1)     //表明数据从位移寄存器传输到SCI数据寄存器
      {
      SCI0SR1_RDRF=1;     //读取数据寄存器会将RDRF清除  重新置位
      return SCI0DRL;        //返回数据寄存器的数据
      }
}

//-----------------写SCI数据---------------------------------//
void SciWrite(unsigned char sendchar)
{
    while (!(SCI0SR1&0x80));
    SCI0DRH=0;
    SCI0DRL=sendchar;
}



//------------------------main----------------------------------//
void main(void)
{
/* Write your local variable definition here */

  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
  PE_low_level_init();
  /*** End of Processor Expert internal initialization.                    ***/

  SciInit();

  for(;;)
  {
  //SciWrite(0x07);
  }  
  /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
  for(;;){}
  /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/

//---------------------------接收中断函数-----------------------//
#pragma CODE_SEG NON_BANKED  
ISR (Rs232_Interrupt)
{
unsigned char ch;
ch=SciRead();
SciWrite(ch);
}


作者: 机遇    时间: 2014-9-9 14:06
在线仿真看你中断函数进的去吗 进不去 看下串口服务函数编写对不对 串口初始化对不对  进的去 就是你 接受子函数的问题了
作者: b8352166    时间: 2014-9-9 15:11
机遇 发表于 2014-9-9 14:06
在线仿真看你中断函数进的去吗 进不去 看下串口服务函数编写对不对 串口初始化对不对  进的去 就是你 接受子 ...

中断进不去,应该是初始化的问题,波特率和奇偶校验都对的,一直找不到原因





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2