[求助]请教,MC9S08GT8A的SPI模块标志位应如何清零?
- UID
- 344045
- 性别
- 男
|
[求助]请教,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脚先置高电平
}
|
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 344045
- 性别
- 男
|
没办法清0,我用你在另外一个帖子上的程序http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=121156&ID=121156试了一下,也不行 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
我还是要重复在那个帖子里的一句话:
实际上SPTEF并不是发送完成标志,而是发送缓冲空标志。如果没有数据正在发送,数据从缓冲转移到发送移位寄存器的速度是非常快的。所以有可能在调试过程中看不到SPTEF变为0的状态。 |
|
|
|
|
|
- UID
- 344045
- 性别
- 男
|
|
|
|
|
|