Board logo

标题: 请教达人S12单片机的SCI问题!! [打印本页]

作者: ctypyb2002    时间: 2006-7-19 20:21     标题: 请教达人S12单片机的SCI问题!!

小弟编写S12单片机的SCI程序时总出问题,望指教!!


小弟是让单片机和PC能够进行简单的通信:PC发任意一个字符给单片机,单片机接受到后,给PC


发一定变量的值。程序如下:


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



#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"


unsigned char a[4];
 
void SCI0_init(void) {


SCI0BDH=0x00;
SCI0BDL=0x9c;


SCI0CR1=0x00;
SCI0CR2=0x6c;


 


}


interrupt void SCI0_int(void){
  
   //接受中断
  if(SCI0SR1_RDRF==1){
      while(!SCI0SR1_RDRF);
        
      while (!SCI0SR1_TDRE); //确保发送缓存为空
      SCI0DRL=a[1];
      while (!SCI0SR1_TC);   //确保发送完成
  }
   //发送中断 
   if(SCI0SR1_TC==1){
       while (!SCI0SR1_TDRE); //确保发送缓存为空
       SCI0DRL = a[2]; 
       while (!SCI0SR1_TC);   //确保发送完成
   }  
}


void main(void)
{
  DisableInterrupts;  


  SCI0_init();    
  EnableInterrupts;
 
  a[0]='a';
  a[1]='b';
  a[2]='c';
  a[3]='d';
   
  for (;;)
  {    
  }
 
}


VECTOR ADDRESS 0xffd6 SCI0_int


作者: strongchen    时间: 2006-7-20 09:23

出的是什么问题?是完全没有信号还是数据出错?
作者: nishui_2000    时间: 2006-7-20 15:05

看不懂,我用的12单片机的串口的发送和接受是两个中断地址,怎么你给的程序里是一个入口地址啊

作者: qqxx082    时间: 2006-7-22 19:36

是发送数据为空吗?
作者: ctypyb2002    时间: 2006-7-23 13:41

是程序出错!!
程序一直在中断里出不来!!
nishui_2000你好,S12单片机好像只有SCI0、SCI1两个中断源。麻烦你给出中断地址,好吗??
作者: qqxx082    时间: 2006-7-23 21:58

你可以单步执行看看程序是卡在哪个while语句中出不来了,然后试着取消那句调试调试,
s12单片机是只有两个中断源,得软件编程让它识别是哪个中断。
作者: qqxx082    时间: 2006-7-23 21:58

你可以单步执行看看程序是卡在哪个while语句中出不来了,然后试着取消那句调试调试,
s12单片机是只有两个中断源,得软件编程让它识别是哪个中断。




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