Board logo

标题: [求助]请教,MC9S08GT8A的SPI模块标志位应如何清零? [打印本页]

作者: BHLT123    时间: 2007-10-15 10:47     标题: [求助]请教,MC9S08GT8A的SPI模块标志位应如何清零?

不知道什么原因,SPIS_SPTEF一直是1,按照英文数据书上的方法无法实现将其清0.

初始化程序如下:

void SPI_Init(void)
{

unsigned char SPItmp;

SPIC1 = 0x54; //禁止SPI中断;

//使能SPI功能;

//作为主机;

SPIC2 = 0x00;

SPIBR = 0x00; //波特率 10M/1/2=5M

while(SPIS_SPTEF == 0)
{
}

SPID = 0;

PTEDD_PTEDD2 = 1; //释放SPI模块的SS脚,并作为SPI器件的片选脚;

PTED_PTED2 = 0; //SS脚先置高电平
}


作者: strongchen    时间: 2007-10-15 11:14

你是如何将SPTEF清零的?
作者: BHLT123    时间: 2007-10-15 13:27

没办法清0,我用你在另外一个帖子上的程序http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=121156&ID=121156试了一下,也不行
作者: strongchen    时间: 2007-10-15 15:11

我还是要重复在那个帖子里的一句话:
实际上SPTEF并不是发送完成标志,而是发送缓冲空标志。如果没有数据正在发送,数据从缓冲转移到发送移位寄存器的速度是非常快的。所以有可能在调试过程中看不到SPTEF变为0的状态。
作者: BHLT123    时间: 2007-10-15 15:26

谢谢,问题已解决~




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