本帖最后由 cl234583745 于 2014-4-11 11:32 编辑
串口发数据,不能进入接收中断函数的断点处。怎么办呢?是不是与时钟设置有关系,我的程序没有用到pll fll,就是外部晶振8m 1分频。帮我看看程序哪里不对,或者提供个
/*********************主函数************************************/
void main(void) {
EnableInterrupts; /* enable interrupts */
/* include your code here */
ICS_INIT();
MCU_INIT();
SCI_INIT();
for(;;) {
//__RESET_WATCHDOG(); /* feeds the dog */
while(SCI1S1_TDRE) {
SCI1S1_TDRE=0;
DELAY(100);
SCI1D=BUFF1;
}/**/
}
}
/***************************MCU初始化函数*******************************/
void MCU_INIT(void){
SOPT1=0x42; //关看门狗,BKGD使能
SOPT2=0x00;
}
/***************************ICS初始化函数*******************************/
void ICS_INIT(void) {
MCGC1=0x80;
MCGC2=0x30;
}
/*********************SCI_INIT函数************************************/
void SCI_INIT(void) {
SCI1BD =8000000/16/scibandrate;
SCI1C1=0x00;
SCI1C2=0x2C;//使能接受中断
}
/*********************延时函数************************************/
void DELAY(int x){
int i,j;
for(i=0;i<x;i++) {
for(j=0;j<100;j++)
{;}
}
}
/*****************串口接收中断*************************************/
interrupt 17 void SCI_RE(void) {
while(SCI1S1_RDRF)
BUFF1=SCI1D;
SCI1S1_RDRF=0;
}
|