请教大家一些关于关于LPC2106与SST25VF016B的读写的问题.
SST25VF016B是SPI接口的flash.
数据手册上说写入控制命令"0x9f"可以读出它的ID.
那么当LPC2106的SPI口初始化之后,我往SPDR送出"0x90".
紧跟while(!(SPI_SPSR&0x80))等待发送完毕.
之后我SST25VF016B应返回我三个字节的ID.
请问我接下来应该怎么写呢?
我原来的写法是:
while(!(SPI_SPSR&0x80)); //等待接收完毕.
get_id[0] = SPI_SPSR; //读SPI_SPSR清零SPIF
get_id[0] = SPI_SPDR; //读第一个字节.
while(!(SPI_SPSR&0x80)); //等待接收完毕.(死循环)
get_id[1] = SPI_SPSR; //读SPI_SPSR清零SPIF
get_id[1] = SPI_SPDR; //读第二个字节.
while(!(SPI_SPSR&0x80)); //等待接收完毕.
get_id[2] = SPI_SPSR; //读SPI_SPSR清零SPIF
get_id[2] = SPI_SPDR; //读第三个字节.
但是实际情况是读出第一个字节程序就陷入了那句while(!(SPI_SPSR&0x80)); (死循环)
后来我观察我读出来的第一个字节,第一个字节就是0xff,肯定不正确了.
请问我要怎么读从机发来的数据啊.
|
|