首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

AN2883 例程问题

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 你可以把你的代码发给我吗,谢谢了
zhu.dongpo@jesonwireless.com
返回列表