三分钟教你玩转cubeMX+USB+FATFS+FREERTOS

11 篇文章 0 订阅
11 篇文章 1 订阅

1、真的只要三分钟吗?

可能还不要,cubeMX的强大,你想都想不到,话不多说,直接开始。

2、配置过程

配置时钟源、配置USB、配置FATFS、配置FREERTOS,与其说是配置,其实就是勾选,除了特定选择的几个参数外,一切采用默认参数,完美通过。

2.1、配置时钟

选择外部时钟源,我的板子是12M晶振。
在这里插入图片描述
按照下面选择时钟
在这里插入图片描述

2.2、调试接口配置

SYS里面选择调试接口,这个地方不要忘记了,否则烧写不了程序。
在这里插入图片描述

2.3、USB配置

忽略我配置的其他东西,选择USB_OTG_FS后,选择Host_Only。
在这里插入图片描述
下面在USB_HOST里面选择MassStorageHostClass。
在这里插入图片描述

2.4、文件系统配置

直接勾选USB Disk。
在这里插入图片描述

2.5、操作系统配置

直接勾选打开就好了。
在这里插入图片描述
下面要注意一下,任务栈要设置的大一点,文件系统里面定义的一些结构体比较占空间,笔者开始没有注意这个地方,采用默认值,结果程序一直进hardfault,这里设置到512bytes
在这里插入图片描述

2.6、项目工程设置

最小堆和最小栈设置一下,其他的根据自己的工程来。
在这里插入图片描述

所有参数都默认就好了,不用折腾,下面直接生成代码,打开工程。

3、测试代码

打开工程后,直接在fatfs.c里面,编写一个测试代码,如下
在这里插入图片描述
在这里插入图片描述
然后在main.c里面的开始任务里面加入测试代码
在这里插入图片描述

4、结论

插一个U盘在你的板子上面,根据测试代码的编写逻辑,会在你的U盘里面简历一个STM32.TXT的文件,然后在文件里面写上一段话“The site is STM32cube.com working with FatFs”。看看你的成功了没有,就是这么简单。不要再去配置什么寄存器了。
USB的基本流程,先mount,再open,再write,最后close,然后unmount。在挂载前,注意检查USB的状态,要在READY状态下才可以,操作完了之后设置为DISCONNECT,然后卸载掉U盘。
笔者开始碰到一个问题,弄了半天,重建了几个工程,发现,重复这个过程,三分钟就搞定了。
有问题,可以给我留言。

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
STM32CubeMX是一个用于配置STM32微控制器的图形化工具。它可以帮助我们快速配置SD卡、DMA和FATFS文件系统。 在开始配置之前,我们需要先连接SD卡到STM32微控制器,并确保正确配置了SD卡的GPIO引脚,使其与STM32的SDIO接口连接。 首先,打开STM32CubeMX选择相应的微控制器型号。然后,点击"Pinout & Configuration"选项卡,在左侧的"Peripherals"下选择SDIO,然后在右侧选择SDIO的引脚和模式。确保使能SDIO的时钟和数据信号引脚,并选择正确的模式,如4线模式。 接下来,点击"Middleware"选项卡,在右侧的"STemWin"下选择"FATFS"。然后,在"FATFs 1"下选择"SDIO"作为SD卡的字节访问连接器,并在"Volume1 size"中指定SD卡的容量。 再次点击"Middleware"选项卡,在右侧的"FATFS"下选择"DMA",以启用DMA传输。在"Mode"中选择"POLLING" 或"DMA"作为传输模式,并选择一个可用的DMA通道,例如DMA2-Stream3。 最后,点击"Project"选项卡,在右侧的"Project Name"下输入项目名称,然后点击"Save"按钮保存配置。 现在,我们已经完成了STM32CubeMX的配置。生成代码并导入到我们的IDE中,例如Keil或者STM32CubeIDE。 在代码中,我们需要初始化SDIO和DMA,并创建FATFS实例,在主循环中使用FATFS函数完成SD卡的读写操作。我们可以使用FATFS提供的函数来打开、写入、读取和关闭文件,以及创建、删除和重命名目录。 这就是使用STM32CubeMX配置SD卡、DMA和FATFS的步骤。通过使用STM32CubeMX,我们可以快速而方便地配置SD卡、DMA和FATFS,从而实现SD卡的读写操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值