挂载文件系统SD卡读写

本文介绍了如何在STM32F103VET6开发板上,利用STM32CubeMX配置SDIO、USART和FATFS,实现串行Flash模拟U盘的功能。主要步骤包括在usart.c中重定向printf进行调试,配置SDIO时钟分频,理解并使用f_mount、f_open、f_lseek和f_close等FATFS库函数进行文件系统的挂载和操作。同时,文章提到了在USB DEVICE连接时如何停止向SD卡写数据的问题。
摘要由CSDN通过智能技术生成

使用软件:stm32cubemx
开发板:野火指南者stm32f103vet6
HAL库;STM32Cube FW_F1 V1.8.0
实现功能:串行flash模拟u盘

先用STM32CubeMX生成代码
需要:
1.RCC
2.SYS
3.SDIO
4.USART1(调试用)
5.FATFS(SD Card)
需要配置中断:无
在这里插入图片描述
在这里插入图片描述
设置 SDIOCLK clock divide factor (一般设置4-8) 在这里插入图片描述

这是对应的标准库sd卡的配置
在这里插入图片描述
设置异步通信模式在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成代码

1…在usart.c重定向printf,方便给调试

需要加上stdio.h文件

#include "stdio.h"
int fputc(int ch, FILE *f)
{
   
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}

/**
  * 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
  * 输入参数: 无
  * 返 回 值: 无
  * 说    明:无
  */
int fgetc(FILE * f)
{
   
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1,&ch
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值