SPI可以写进EEPROM 也可以读(我写入某个地址的数据再读出来是正确的----用示波器监控SO波形是正确的),但是该数据读不到SPIDR寄存器里,每次读该寄存器内容都是0xff,怎么回事呢,下面是我的代码
SPI_Read_Byte(void)
{
while(!SPI2SR_SPTEF);
a = SPI2SR;
SPI2DR=0x00;
while(!(SPI2SR_SPIF));
a = SPI2SR_SPIF;
return SPI2DRL;
}
SPI_Init(void)
{
//DDRH=0xFF;
RDRH=0;
DDRH_DDRH4=0;
//PPSH_PPSH4=0;
MODRR = 0x40;
SPI2CR1 = 0x5E;
SPI2CR2 = 0x10;
SPI2BR = 0x33;
}
|