Board logo

标题: 请教一个SCI 中断的问题 [打印本页]

作者: zhangym0501    时间: 2008-9-19 15:33     标题: 请教一个SCI 中断的问题

采用SCI中断方式接收数据时,发现无法产生中断,SCISR1寄存器始终为0xC0(复位后就是这个值),RDRF标志位一直没有置位,不知是何原因?
作者: fayefayehoo    时间: 2008-9-19 15:59

没有原程序,太难判断了,先看看SCICR2_RE是否置1.
作者: strongchen    时间: 2008-9-22 14:34

SCI引脚上有输入信号吗?
作者: zhangym0501    时间: 2008-9-23 11:51

QUOTE:
以下是引用fayefayehoo在2008-9-19 15:59:00的发言:
没有原程序,太难判断了,先看看SCICR2_RE是否置1.

SCICR2 = 0X0C; TE和RE都置1

我就挺纳闷SCI初始化后(初始化时通过读SCISR1和SCIDRL,清0),SCISR1还是0XC0,按道理初始化后SCISR1应该为0X00


作者: zhangym0501    时间: 2008-9-23 11:53

QUOTE:
以下是引用strongchen在2008-9-22 14:34:00的发言:
SCI引脚上有输入信号吗?

我没有示波器,用万用表看不出来吧?


作者: fayefayehoo    时间: 2008-9-23 13:12

你用的是哪个SCI,我用的是 S12SCIV5,,初始化以后SCISR1也是0xC0,但接收发送都很正常。

最好把初始化的代码发上来看看

另外,波特率你设对了没有

[此贴子已经被作者于2008-9-23 13:14:24编辑过]


作者: zhangym0501    时间: 2008-9-23 14:52

QUOTE:
以下是引用fayefayehoo在2008-9-23 13:12:00的发言:

你用的是哪个SCI,我用的是 S12SCIV5,,初始化以后SCISR1也是0xC0,但接收发送都很正常。

最好把初始化的代码发上来看看

另外,波特率你设对了没有

[此贴子已经被作者于2008-9-23 13:14:24编辑过]

从单片机上往上位机发没有问题,这应该说波特率是正确的,初始化代码如下:

void SCIInit(void)
{
INT8U i;
//(1)设置波特率为9600
SCIBDL=0x68; //BR=fbus/(16*Bt)=16000000/(16*9600)=104.17:0x68
SCIBDH=0x00; //SCIBDH=0x00,SCIBDL=0x68;
//(2)设置控制寄存器
SCICR1=0x00; //允许SCI,正常码输出,8位数据,无校验
SCICR2=0x0C; //中断暂时关闭,允许发送(TE=1)和接收(RE=1)
//(3)清空数据寄存器和状态寄存器
i = SCISR1; //清空状态寄存器1
i = SCIDRL; //清空数据寄存器
}

在初始化结束后开启接受中断和总中断.

[此贴子已经被作者于2008-9-24 10:39:31编辑过]


作者: zhangym0501    时间: 2008-9-23 15:11

我用得外部晶振是8M
作者: fayefayehoo    时间: 2008-9-23 16:03

还是找个示波器检查一下波形比较好,初始化来看没什么问题。


作者: fayefayehoo    时间: 2008-9-23 17:04

我自己用的初始化程序比你还简单

void Init_SCI0(void)
{
LinTransceiverWakeup();
SCI0SR2_AMAP = 0;

SCI0BD_SBR = 13; // 9600 bps

SCI0CR1 = 0x00;
SCI0CR2 = 0x2C;
SCI0SR2_BRK13 = 1;
LinRxState = ReceiveIdle;
LinTransceiverWakeup();
}


作者: yuan_sicn    时间: 2008-10-7 19:05

我用PE生成的SCI代码,发送正常,就是接收时没有进入接收中断,不知为何


作者: strongchen    时间: 2008-10-8 17:17

有可能没有开启接收中断,或者没有输入信号?
作者: fjczd    时间: 2009-2-4 09:35

问题解决了吗,给个答复吧

谢谢






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