智能车制作
标题:
问个spi的问题..
[打印本页]
作者:
karwenlin
时间:
2009-4-22 19:43
标题:
问个spi的问题..
向SPIDR写入0xff之后(调试可看到SPIDR中的数值变为255),SPTEF依然是1,说数据寄存器还是空的.
这是怎么回事?
void SPI_Init(void) //spi初始化
{
// DDRT = 0xff;
MODRR = 0x00;
SPI0CR2 = 0x10;
SPI0CR1 = 0x5e;
SPI0BR = 0x42; //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=16000/(5*8)=400k
}
//SPI写一个字节
void SPI_Write_Byte(unsigned char val)
{
while(SPI0SR_SPTEF) //发送器空时该标志为1;
{
SPI0DR=val;
}
}
作者:
songfangfang
时间:
2009-4-29 22:22
我现在也在做SPI,但是数据寄存器的值一直读不到,不知道是什么原因~~~~
作者:
gaoam040
时间:
2009-5-5 16:20
2#
songfangfang
SPI 的状态寄存器初始化中你也没有设置。还有当SPI_SPTEF=0的时候,你就跳过去了,没有等待,那时也可能是传输速度太慢,导致寄存器中还有数,你就写不了了。试着等待一下,等他为空的时候再往里写。
作者:
seuzhuxi
时间:
2013-4-16 15:49
并未清零SPTEF位,因为该标志位是通过读SPISR状态寄存器来清零的
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2