Board logo

标题: AN2883 例程问题 [打印本页]

作者: zhudongpo    时间: 2006-11-1 20:38     标题: AN2883 例程问题

按照AN2883 想学习一下SCI的中断接收,可是不能实现。代码如下。


请问是什么原因,通过串口调测助手接收到的一直是'F',通过串口调测助手发送'L',还是只收到'F'。


#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp256.h>     /* derivative information */



#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"


unsigned char Stringcase;


#pragma  CODE_SEG __NEAR_SEG NON_BANKED
interrupt 20 void sci0_rx(void)
{
   SCI0SR1_RDRF=0;
   if (SCI0DRL=='U' || SCI0DRL=='u')
   {
      Stringcase=0x00;
   }
   else if (SCI0DRL=='L' || SCI0DRL=='l')
   {
      Stringcase=0x20;
   }
}
//*****************************************************************************
//     SCI参数设置
//*****************************************************************************
void Init_SCI(void)
{
  SCI0BDL=6;     
  SCI0BDH=0;          //CLOCK=7.3728MHz, bps=38400
 
  SCI0CR1=0x00; 
  SCI0CR2=0x2c;
}


 
//**************************************************************************
//  串口0发送      
//**************************************************************************


void send(unsigned char data)
{
   unsigned char c;     
   while(!SCI0SR1_TDRE) {};  //数据仍在发送寄存器中,等待
   c=SCI0SR1;                //读SCI0SR1,清TDRE标志
   SCI0DRL=data;            //写SCI数据寄存器        
}


void main(void) {
  /* put your own code here */
  Init_SCI();
  EnableInterrupts;
 // Stringcase=0x20;
  for(;;)
  {
    send('F'+Stringcase);
  } /* wait forever */
}


作者: fdp123456    时间: 2006-11-2 13:57

你的中断的问题没有处理好啊

作者: fdp123456    时间: 2006-11-2 13:58

需要的我可以给的我写的

作者: zhudongpo    时间: 2006-11-3 10:54

fdp123456 你可以把你的代码发给我吗,谢谢了
zhu.dongpo@jesonwireless.com




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0