关于LPC2106与SST25VF016B的读写

[复制链接]
6260|7
 楼主| 北京户口 发表于 2010-2-22 02:25 | 显示全部楼层 |阅读模式
请教大家一些关于关于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,肯定不正确了.
请问我要怎么读从机发来的数据啊.

yoyowodeai 发表于 2010-2-22 02:26 | 显示全部楼层
帮顶,共同召唤高手解决!
年轻不在 发表于 2010-2-22 14:16 | 显示全部楼层
请用IF语句
S3C2440 发表于 2010-2-23 12:59 | 显示全部楼层
你这while循环就没有跳出来
 楼主| 北京户口 发表于 2010-2-24 12:59 | 显示全部楼层
还是没有解决!
ningwuli 发表于 2010-9-2 10:36 | 显示全部楼层
yulri 发表于 2010-10-15 11:16 | 显示全部楼层
关注中……
jclwd8263 发表于 2011-4-25 10:15 | 显示全部楼层
1# 北京户口
mark
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

521

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部