OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 131|回复: 2

关于429将SDRAM移植FatFS的疑问?

[复制链接]

  离线 

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-10-26
在线时间
10 小时
发表于 2017-11-13 17:19:37 | 显示全部楼层 |阅读模式
1金钱
我用开发板,在外扩的这颗SDRAM想实现FatFS的文件操作,但是一直不成功啊。

代码是用STM32CubeMX生成的,不知道我生成代码时候的配置是否正确:

int main(void)
{

  /* USER CODE BEGIN 1 */
        unsigned char i ;
        FIL MyFile;
        uint32_t byteswritten, bytesread;  
        uint8_t wtext[] = "STM32 with FatFs demo @ std lib";  /* File write buffer */
  uint8_t rtext[100];                                   /* File read buffer */
        FRESULT res;                                          /* FatFs function common result code */
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_FMC_Init();
  MX_USART1_UART_Init();
  MX_FATFS_Init();

  /* USER CODE BEGIN 2 */
//        if(FATFS_LinkDriver(&SDRAMDISK_Driver, &SDRAMDISKPath[0]) == 0)
//        {
                if( f_mkfs(&SDRAMDISKPath[0], FM_ANY, 0,&rtext,0) == FR_OK )
                {
                        //表示挂载SDRAM成功
                        if(f_mount(&SDRAMDISKFatFS,&SDRAMDISKPath[0],1) == FR_OK)
                        {
                                if(f_open(&MyFile, "STM32STD.TXT", FA_CREATE_ALWAYS | FA_WRITE) == FR_OK)
                                {
                                        res = f_write(&MyFile, wtext, sizeof(wtext), (void *)&byteswritten);
                                        f_close(&MyFile);
                                }
                                if(f_open(&MyFile, "STM32STD.TXT", FA_READ) == FR_OK)
                                {
                                        res = f_read(&MyFile, rtext, sizeof(rtext), (UINT*)&bytesread);
                                        if((bytesread != 0) || (res == FR_OK))
                                        {
                                                f_close(&MyFile);
                                        }
                                }
                        }
                }
//        }
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}

回复

使用道具 举报

  离线 

50

主题

5838

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
11116
金钱
11116
注册时间
2013-11-13
在线时间
1181 小时
发表于 2017-11-13 17:57:53 | 显示全部楼层
SDRAM移植FATFS?!掉电就丢数据的东西你确定可以移植FATFS,每次上电分区表都会丢失。
回复

使用道具 举报

  离线 

6

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-10-26
在线时间
10 小时
 楼主| 发表于 2017-11-14 08:53:24 | 显示全部楼层
我想用SDRAM一部分作为一个文件缓冲区,类似做一个文件cach的作用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-11-22 03:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */