97 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /**
 | ||
|   @page FatFs_uSD   FatFs with uSD card drive example
 | ||
|  
 | ||
|   @verbatim
 | ||
|   ******************** (C) COPYRIGHT 2016 STMicroelectronics *******************
 | ||
|   * @file    readme.txt
 | ||
|   * @author  MCD Application Team
 | ||
|   * @brief   Description of the FatFs with uSD card drive example
 | ||
|   ******************************************************************************
 | ||
|   * @attention
 | ||
|   *
 | ||
|   * <h2><center>© Copyright (c) 2016 STMicroelectronics.
 | ||
|   * All rights reserved.</center></h2>
 | ||
|   *
 | ||
|   * This software component is licensed by ST under BSD 3-Clause license,
 | ||
|   * the "License"; You may not use this file except in compliance with the
 | ||
|   * License. You may obtain a copy of the License at:
 | ||
|   *                        opensource.org/licenses/BSD-3-Clause
 | ||
|   *
 | ||
|   ******************************************************************************
 | ||
|   @endverbatim
 | ||
| 
 | ||
| @par Example Description
 | ||
| 
 | ||
| How to use STM32Cube firmware with FatFs middleware component as a generic FAT
 | ||
| file system module. This example develops an application exploiting FatFs features,
 | ||
| with a microSD drive configuration.
 | ||
| 
 | ||
| At the beginning of the main program the HAL_Init() function is called to reset 
 | ||
| all the peripherals, initialize the Flash interface and the systick.
 | ||
| Then the SystemClock_Config() function is used to configure the system clock
 | ||
| (SYSCLK) to run at 72 MHz.
 | ||
|  
 | ||
| The application is based on writing and reading back a text file from a drive,
 | ||
| and it's performed using FatFs APIs to access the FAT volume as described
 | ||
| in the following steps: 
 | ||
| 
 | ||
|  - Link the uSD disk I/O driver;
 | ||
|  - Register the file system object (mount) to the FatFs module for the uSD drive;
 | ||
|  - Create a FAT file system (format) on the uSD drive;
 | ||
|  - Create and Open new text file object with write access;
 | ||
|  - Write data to the text file;
 | ||
|  - Close the open text file;
 | ||
|  - Open text file object with read access;
 | ||
|  - Read back data from the text file;
 | ||
|  - Close the open text file;
 | ||
|  - Check on read data from text file;
 | ||
|  - Unlink the uSD disk I/O driver.
 | ||
| 
 | ||
| It is worth noting that the application manages any error occurred during the 
 | ||
| access to FAT volume, when using FatFs APIs. Otherwise, user can check if the
 | ||
| written text file is available on the uSD card.
 | ||
| 
 | ||
| It is possible to fine tune needed FatFs features by modifying defines values 
 | ||
| in FatFs configuration file <20>ffconf.h<> available under the project includes 
 | ||
| directory, in a way to fit the application requirements. 
 | ||
| 
 | ||
| STM3210E-EVAL RevD's LEDs can be used to monitor the example status:
 | ||
|   - LED_GREEN is on when the example runs successfully.
 | ||
|   - LED_RED is blinking in case of error in initialization or during FatFs_uSD process.
 | ||
| 
 | ||
| @note Care must be taken when using HAL_Delay(), this function provides accurate delay (in milliseconds)
 | ||
|       based on variable incremented in SysTick ISR. This implies that if HAL_Delay() is called from
 | ||
|       a peripheral ISR process, then the SysTick interrupt must have higher priority (numerically lower)
 | ||
|       than the peripheral interrupt. Otherwise the caller ISR process will be blocked.
 | ||
|       To change the SysTick interrupt priority you have to use HAL_NVIC_SetPriority() function.
 | ||
|       
 | ||
| @note The application need to ensure that the SysTick time base is always set to 1 millisecond
 | ||
|       to have correct HAL operation.
 | ||
| 
 | ||
| @par Directory contents
 | ||
|  
 | ||
|   - FatFs/FatFs_uSD/Inc/stm32f1xx_hal_conf.h    HAL configuration file
 | ||
|   - FatFs/FatFs_uSD/Inc/stm32f1xx_it.h          Interrupt handlers header file
 | ||
|   - FatFs/FatFs_uSD/Inc/main.h                  Header for main.c module
 | ||
|   - FatFs/FatFs_uSD/Inc/ffconf.h                FAT file system module configuration file   
 | ||
|   - FatFs/FatFs_uSD/Src/stm32f1xx_it.c          Interrupt handlers
 | ||
|   - FatFs/FatFs_uSD/Src/main.c                  Main program
 | ||
|   - FatFs/FatFs_uSD/Src/system_stm32f1xx.c      STM32F1xx system source file
 | ||
| 
 | ||
| @par Hardware and Software environment
 | ||
| 
 | ||
|   - This example runs on STM32F103xG devices
 | ||
|     
 | ||
|   - This example has been tested with STM3210E-EVAL RevD board and can be
 | ||
|     easily tailored to any other supported device and development board.        
 | ||
| 
 | ||
| @par How to use it ? 
 | ||
| 
 | ||
| In order to make the program work, you must do the following:
 | ||
|  - Open your preferred toolchain 
 | ||
|  - Rebuild all files and load your image into target memory
 | ||
|  - Run the example
 | ||
| 
 | ||
|  * <h3><center>© COPYRIGHT STMicroelectronics</center></h3>
 | ||
|  */
 |