一、开发环境:
1、STM32F407迷你开发板(带SD卡模块),原理图链接:
2、STLINK V2
3、CP2102 USB转串口
4、8G SD卡
5、STM32CUBEMX
6、KEIL MDK
二、CUBEMX配置
三、KEIL编写
1、项目结构
导出的工程可以直接编译。最终程序执行顺序为:主函数–>文件系统应用程序–>文件系统–>芯片SDIO接口驱动。我们需要编写的只有主函数(main.C)和文件系统应用程序(fatfs.c)
2、MAIN.C
main函数中添加SDTest()函数。我们在此函数中进行文件打开读写操作。函数定义在"fatfs.c",并在fatfs.h声明。
main函数中有关SD部分函数执行顺序为MX_SDIO_SD_Init();-》MX_FATFS_Init();-》SDTest();
int main(void)
{
/* USER CODE BEGIN 1 */
/* 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_USART1_UART_Init();
MX_SDIO_SD_Init();
MX_FATFS_Init();
/* USER CODE BEGIN 2 */
printf("1.Program ON\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
SDTest(); //对SD卡进行格式化、文件创建及读写
while (1)
{
HAL_GPIO_WritePin(GPIOA, LED2_Pin|LED3_Pin, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, LED2_P