|
这是我读SPI存储器的程序
void FM25L512_ReadMem(u16 FmAdd,u8* Rxbuf,u16 NbOfByte) { u8 FmReg[4],i; FmReg[0]=FM25L512_READ; FmReg[1]=FmAdd>>8; FmReg[2]=FmAdd; IOPort_Set(GPIO2,IO2_NSS,IOPort_OFF); DelayNS(100); BSPI_BufferSend(BSPI0,FmReg,3);//写命令和地址 for(i=0;i<NbOfByte;i++) { while(BSPI_FlagStatus(BSPI0,0x0008))//在读之前先清FIFO { BSPI_BufferReceive(BSPI0,&FmReg[3],1);//读数据 } BSPI_BufferSend(BSPI0,&FmReg[3],1);//产生读时序,此时数据在MOSI为无所谓 DelayNS(100); BSPI_BufferReceive(BSPI0,Rxbuf+i,1);//读数据 } DelayNS(100); IOPort_Set(GPIO2,IO2_NSS,IOPort_ON); } |
|