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

908GP32的SCI中断问题。

908GP32的SCI中断问题。

我的SCI只能进一次中断,怀疑是没有清中断标志位。请问各位大虾如何清908GP32的SCI的发送中断标志?谢谢!
老大,我是这么做的阿,我在中断里面 先读SCS1寄存器,然后写SCDR寄存器。
但是之后就再也不进中断了。
为什么我在初始化里面开了发送中断,反而发不了了呢?奇怪啊。
我在PC端接收到了1个字符,说明进了发送中断了。然后我在中断服务程序里按照先读SCS1寄存器,然后写SCDR寄存器的方法,想再发一个字符到PC机,但是就不来了
while(1)这个超级循环里面我没有写代码,只是在空转。
然后我在发送中断服务程序里面只是写了这么一句:SCC2 |= SCI_Tx_INT_ENABLE;
应该没有问题啊。老大请指教!!
哦,那就是说只要在初始化里面使能一次发中断就行了。是吧。
显示的是PC的输入字符,那个irbyte应该是irflag。我试了一下不行,其他的初始化工作都已经做好了,感觉上应该可以的,但是....

interrupt 12 void SciRxIntHand(void)
{
U8 Status,readbuf;//中间变量
Status = SCS1;//读一次SCS1状态
readbuf = SCDR;//把PC发的数据读到readbuf
rcvbuf[0]=readbuf;//存入rcvbuf[0]
irflag=1;置收到字符的标志
}
while (1)
{
if (irflag) {
irflag=0; //先清一下标志
ix = SCS1;//读一下SCS1状态
SCDR=rcvbuf[0]; //把在接收中断服务程序中的字符发到发送缓冲区中,再发到PC机(这一步有没有什么问题??)
}
}
请老大帮忙看看,我这样能不能实现从PC机发一个字符,就可以在PC上显示出来的功能? (发送中断我没有写程序,是空的。收发中断都已经开了。)谢谢老大!

[此贴子已经被作者于2006-3-24 15:21:20编辑过]

[此贴子已经被作者于2006-3-24 15:25:52编辑过]

谢谢seuafu2005,我试试看。
返回列表