您的位置 首页 基础

将FATFS移植STM32RBT6遇到的挂载不成功和返回值问题

移植fatfs遇到了诸多问题,很是苦恼啊,移植成功思来之不易,特分享一下经验。硬件是STM32F103RBT6内存只有20kB,Flash只有128KB,考虑到内

移植fatfs遇到了许多问题,很是苦恼啊,移植成功思来之不易,特共享一下经历。硬件是STM32F103RBT6内存只要20kB,Flash只要128KB,考虑到内存有限,就不能支撑长文件名了,在原子论坛上下载的所以要改动,在此感谢原子论坛给我带来的协助还有安富莱论坛http://bbs.armfly.com/read.php?tid=3601给我带来的启示。别的硬件还有一个大的相机的SD卡,网上买的模块当然也能够自己焊接一个,选用SPI接口,SPI1和SPI2都行,看图

移植前做了很多预备,在网上尤其是原子论坛翻看各种其他人移植的心得,去fatfs的官方网站下载0.10版别的程序,看各种相关的移植心得,文档版别很多,目不暇接,花了点时刻看了看一些函数。看得差不多了,就直接把0.10的版别考到自己的工程目录下开端make,通过很多的翻阅和实践,要动的当地只要diskio.c和ffconfig.h,第一个需求把底层驱动函数sd_inti();增加进去。sd卡的读单块和读多块,写单块写多块填进去,ffconfig.h里面需求改几个宏界说的值参照他人的例程就能够完成很简单。

DSTATUS disk_initialize (
BYTE drv/* Physical drive nmuber (0..) */
)
{

u8 state;
state=SD_Init();
if(!state){
return STA_NODISK;
}
return 0;
}

/*———————————————————————–*/
/* Return Disk Status */

DSTATUS disk_status (
BYTE drv/* Physical drive nmuber (0..) */
)
{return 0;
}

/*———————————————————————–*/
/* Read Sector(s) */

DRESULT disk_read (
BYTE drv,/* Physical drive nmuber (0..) */
BYTE *buff,/* Data buffer to store read data */
DWORD sector,/* Sector address (LBA) */
BYTE count/* Number of sectors to read (1..255) */
)
{
u8 res=0;

if(count==1) //1个sector的读操作
{
res = SD_ReadSingleBlock(sector, buff);
//res= SD_ReadDisk(buff,sector,count);
}
else //多个sector的读操作
{
res = SD_ReadMultiBlock(sector, buff, count);
}

//处理返回值,将SPI_SD_driver.c的返回值转成ff.c的返回值
if(res == 0x00)
{
return RES_OK;
}
else
{
return RES_ERROR;
}
}

/*———————————————————————–*/
/* Write Sector(s) */

#if _READONLY == 0
DRESULT disk_write (
BYTE drv,/* Physical drive nmuber (0..) */
const BYTE *buff,/* Data to be written */
DWORD sector,/* Sector address (LBA) */
BYTE count/* Number of sectors to write (1..255) */
)
{
u8 res;

// 读写操作
if(count == 1)
{
res = SD_WriteSingleBlock(sector, buff);;
}
else
{
res = SD_WriteMultiBlock(sector, buff, count);
}
// 返回值转化
if(res == 0)
{
return RES_OK;
}
else
{
return RES_ERROR;
}
}
#endif /* _READONLY */

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/257208.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部