本人在使用28035 SPI读写铁电。当读取SPIRXBUF寄存器中的数据时,读取到底数据与寄存器中的不一致,spi设置为8位数据格式,SPIRXBUF中为0x00ff,但读出来却是0,下面是读取程序
void Spi_Read_Memory(Uint16 Start_Addr , Uint16 Num , Uint16 *p_read)
{
Uint16 i,spi_read_tem;
spi_read_tem = SPI_READ;
if(((Start_Addr >> 8)&0x001)==0x001) //判断是否是高256地址
{
spi_read_tem = spi_read_tem|0x0800;//A8地址
}
GpioDataRegs.GPADAT.bit.GPIO21 = 0;
Spi_Write(spi_read_tem);
Spi_Write(Start_Addr << 8); // 写低地址
for(i=0;i<Num;i++)
{
Spi_Write(0x00);
*p_read = SpiaRegs.SPIRXBUF;
//p_read++;
}
GpioDataRegs.GPADAT.bit.GPIO21 = 1;
}
不知道有遇到这种情况的没?还请知道的帮着解答一下,谢谢
zheng:
只能说自己太粗心了,寄存器名字搞错了,改过来就OK了,以后一定要注意了。。。。