金牌会员
 
- 积分
- 1128
- 金钱
- 1128
- 注册时间
- 2016-3-25
- 在线时间
- 365 小时
|
给SPI FLASH SST25FV032B移植FatFs(0.11版本)文件系统。主控是STM32F407VGT6。前面已经移植了SST25FV032驱动,已经验证驱动是没有问题的。
后面参考了*火的开发板移植文件系统的视频教程。移植过程讲解还是很到位。视频是给W25Q128移植FatFs。但是我手上的是SST25FV032B。貌似很少人用这块FLASH芯片,网上这块驱动资料也比较少。驱动也搞了半天。不知道公司以前的工程师怎么选 这个不常用的芯片。
FatFs移植过程是跟着视频教程一起做的。但是遇到的情况和视频不一样。哎,都得自己摸索。搞了半天,格式化成功,就是挂载失败。郁闷了好久。整个人心情都不好了。反复对比移植驱动的例程。后来才发现。在给SPI初始化完(也就是操作SST25FV032B之前 ,)文件系统中没有调用Write_State_Register(0x00),给状态寄存器写0 。给相关位赋值为0。具体每表示什么意思,请查阅数据手册。这样一编译下载验证。挂载成功了。小兴奋了一下。
/*-----------------------------------------------------------------------*/
/* Inidialize a Drive */
/*----------------------------------------------------------------------*/
DSTATUS disk_initialize (
BYTE pdrv /* Physical drive nmuber to identify the drive */
)
{
DSTATUS stat;
switch (pdrv)
{
case DEV_SPI_FLASH :
// SPI FLASH ³õʼ»¯
SPI_FLASH_Init();
Write_State_Register(0x00); //这个函数在操作SST25FV032前必须调用。不然你无法操作,特别要对FLASH进行写操作。
stat=disk_status(DEV_SPI_FLASH);
break;
default:
stat=STA_NOINIT;
}
return stat;
}
以上提供给遇到同样问题的网友进行参考。错误之处,请网友指正。谢谢
|
|