打印

关于LPC2106与SST25VF016B的读写

[复制链接]
4693|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循环就没有跳出来

使用特权

评论回复
5
北京户口|  楼主 | 2010-2-24 12:59 | 只看该作者
还是没有解决!

使用特权

评论回复
6
ningwuli| | 2010-9-2 10:36 | 只看该作者
期待

使用特权

评论回复
7
yulri| | 2010-10-15 11:16 | 只看该作者
关注中……

使用特权

评论回复
8
jclwd8263| | 2011-4-25 10:15 | 只看该作者
1# 北京户口
mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

521

帖子

1

粉丝