#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 20 void SCI0_interrupt(void)
{
while(SCI0SR1_RDRF)
{
inbuf1[count3]=ch;
count3++;
if( (count3==(INBUF_LEN-1))
{
flag=1; //如果串口接收的数据达到INBUF_LEN个,且校验没错,就置位取数标志
}
}
}
#pragma CODE_SEG DEFAULT
void main(void)
{
/* put your own code here */
init_sci();
init_io();
EnableInterrupts;
for(;;)
{
if(flag) //如果取数标志已置位,就将读到的数从串口发出
{
flag=0; //取数标志清0
send_string_com(inbuf1,INBUF_LEN);
}
} /* wait forever */
}
我想实现通过串口发送一串数字,比如“11 22 33 44”,SCI串口接收(中断)和发送例程,可
以用来测试单片机的中断接收,可是老是不正确(中断只能进入1次),例如
我用串口助手发送了“11 22 33 44”,会接收到“11 22 33 44”,可是第二次发送“11 22 33 44”,就没有接收到数据。邵贝贝的书中说要清中断服务后用RTI作中断返回,可是没有RTI指令,CW不认呀, 麻烦各位给看看,那里有问题?谢谢了
[此贴子已经被作者于2006-4-7 10:32:22编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |