调试W25X16意外的艰难

[复制链接]
21408|70
wanggoals 发表于 2013-9-1 12:10 | 显示全部楼层
学习了。。。刚开始没有注意到延时时间。现在搞定了。辛苦楼主
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;   
}
 楼主| 明月小厨 发表于 2014-1-15 00:44 | 显示全部楼层
非常抱歉,我已经忘记了,只记得SPI的接口很烦;如果只做一件事,处理SPI接口也没有什么;否则,很辛苦了;
要用二个DMA,一个收,一个发;发送的表应该好处理;收到的表,真正有意义的数据从第几个开始,还真的不太容易猜。
SPI很**!
下一次再搞它的时候的我再想想有没有什么好办法;
 楼主| 明月小厨 发表于 2014-1-15 00:44 | 显示全部楼层
以前的我有毛病,晚上竟然不睡。身体很快就会垮掉的。
ADaiPlay 发表于 2014-1-15 08:48 | 显示全部楼层
兄弟注意身体啊
戈卫东 发表于 2014-1-15 10:22 | 显示全部楼层
关注。。。。。
 楼主| 明月小厨 发表于 2014-1-15 12:37 | 显示全部楼层
SPI虽然烦人,但比I2C应该强很多的;
1)速度远比I2C快;
2)只要闭着眼发数据,收数据;不用操心很多的标志量;而I2C其实是双向的通讯,有ACK应答,所以速度不仅上不来,而且每一步的操作的后续操作要根据标志量再来决定;
给SPI平反,SPI只是一串数据出,一串数据进,本身很简单;烦人的是被SPI控制的器件;各种协议很折腾人;
5186 发表于 2014-1-15 13:36 | 显示全部楼层
哈哈,这芯片我用过,一次性成功,没有问题
wyy410128089 发表于 2015-7-22 09:16 | 显示全部楼层
明月小厨 发表于 2013-3-3 20:14
一直没有认真看参考手册;只是猜测信号的流程;
当时翻看手册时发现,我的假设真的有错;如:
发送第一个数据时, ...

楼主的问题解决了吗?我现在也正在调试,读FLASH的ID只能读到低两位,高两位始终是FF(0xFF14),或者是改读指令为AB,读的结果为0xFFEF。
fanxsd 发表于 2015-7-22 09:19 | 显示全部楼层
调试好了 就是王道啊!
15102595235 发表于 2015-7-29 11:43 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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