打印

调试W25X16意外的艰难

[复制链接]
楼主: 明月小厨
手机看帖
扫描二维码
随时随地手机跟帖
61
wanggoals| | 2013-9-1 12:10 | 只看该作者 回帖奖励 |倒序浏览
学习了。。。刚开始没有注意到延时时间。现在搞定了。辛苦楼主

使用特权

评论回复
62
thislmh| | 2014-1-12 17:16 | 只看该作者
兄弟,太牛了,用你的方法确实能正确读出ID,在页编程和读数据时是不是有类似问题,我调了好久,写进任何一个字节读出来都为0,不知道是不是没写进去的原因,我把程序贴出来,能指点一下吗
写一个字节的函数:
void Write_Flash(u8 data,u32 addr)
{
    Write_Enable();
          FLASH_CS_LOW;
          
           SPI_Senddata(0x02);
           SPI_Senddata(addr/65536);
           SPI_Senddata(addr/256);
           SPI_Senddata(addr);
          
           SPI_Senddata(data);
           FLASH_CS_HIGH;
}
读取一个字节的函数:
u8 Read_Flash(u32 addr)
{
   u8 ReceviedData;
      FLASH_CS_LOW;
       
    SPI_Senddata(0x03);
    SPI_Senddata(addr/65536);
          SPI_Senddata(addr/256);
          SPI_Senddata(addr);
       
    ReceviedData=SPI_Senddata(0xff);
          FLASH_CS_HIGH;
   return  ReceviedData;   
}

使用特权

评论回复
63
明月小厨|  楼主 | 2014-1-15 00:44 | 只看该作者
非常抱歉,我已经忘记了,只记得SPI的接口很烦;如果只做一件事,处理SPI接口也没有什么;否则,很辛苦了;
要用二个DMA,一个收,一个发;发送的表应该好处理;收到的表,真正有意义的数据从第几个开始,还真的不太容易猜。
SPI很**!
下一次再搞它的时候的我再想想有没有什么好办法;

使用特权

评论回复
64
明月小厨|  楼主 | 2014-1-15 00:44 | 只看该作者
以前的我有毛病,晚上竟然不睡。身体很快就会垮掉的。

使用特权

评论回复
65
ADaiPlay| | 2014-1-15 08:48 | 只看该作者
兄弟注意身体啊

使用特权

评论回复
66
戈卫东| | 2014-1-15 10:22 | 只看该作者
关注。。。。。

使用特权

评论回复
67
明月小厨|  楼主 | 2014-1-15 12:37 | 只看该作者
SPI虽然烦人,但比I2C应该强很多的;
1)速度远比I2C快;
2)只要闭着眼发数据,收数据;不用操心很多的标志量;而I2C其实是双向的通讯,有ACK应答,所以速度不仅上不来,而且每一步的操作的后续操作要根据标志量再来决定;
给SPI平反,SPI只是一串数据出,一串数据进,本身很简单;烦人的是被SPI控制的器件;各种协议很折腾人;

使用特权

评论回复
68
5186| | 2014-1-15 13:36 | 只看该作者
哈哈,这芯片我用过,一次性成功,没有问题

使用特权

评论回复
69
wyy410128089| | 2015-7-22 09:16 | 只看该作者
明月小厨 发表于 2013-3-3 20:14
一直没有认真看参考手册;只是猜测信号的流程;
当时翻看手册时发现,我的假设真的有错;如:
发送第一个数据时, ...

楼主的问题解决了吗?我现在也正在调试,读FLASH的ID只能读到低两位,高两位始终是FF(0xFF14),或者是改读指令为AB,读的结果为0xFFEF。

使用特权

评论回复
70
fanxsd| | 2015-7-22 09:19 | 只看该作者
调试好了 就是王道啊!

使用特权

评论回复
71
15102595235| | 2015-7-29 11:43 | 只看该作者
学习了

使用特权

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

本版积分规则