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

请教达人S12单片机的SCI问题!!

请教达人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

出的是什么问题?是完全没有信号还是数据出错?
海纳百川  有容乃大
看不懂,我用的12单片机的串口的发送和接受是两个中断地址,怎么你给的程序里是一个入口地址啊
水泡泡
 我的QQ是:52449804 
 我的网站是: www.dyic.com.cn
 欢迎访问和留言跟我联系
是发送数据为空吗?
是程序出错!!
程序一直在中断里出不来!!
nishui_2000你好,S12单片机好像只有SCI0、SCI1两个中断源。麻烦你给出中断地址,好吗??
你可以单步执行看看程序是卡在哪个while语句中出不来了,然后试着取消那句调试调试,
s12单片机是只有两个中断源,得软件编程让它识别是哪个中断。
你可以单步执行看看程序是卡在哪个while语句中出不来了,然后试着取消那句调试调试,
s12单片机是只有两个中断源,得软件编程让它识别是哪个中断。
返回列表