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

1、真的只要三分钟吗?

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

2、配置过程

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

2.1、配置时钟

选择外部时钟源,我的板子是12M晶振。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第1张图片
按照下面选择时钟
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第2张图片

2.2、调试接口配置

SYS里面选择调试接口,这个地方不要忘记了,否则烧写不了程序。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第3张图片

2.3、USB配置

忽略我配置的其他东西,选择USB_OTG_FS后,选择Host_Only。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第4张图片
下面在USB_HOST里面选择MassStorageHostClass。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第5张图片

2.4、文件系统配置

直接勾选USB Disk。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第6张图片

2.5、操作系统配置

直接勾选打开就好了。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第7张图片
下面要注意一下,任务栈要设置的大一点,文件系统里面定义的一些结构体比较占空间,笔者开始没有注意这个地方,采用默认值,结果程序一直进hardfault,这里设置到512bytes
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第8张图片

2.6、项目工程设置

最小堆和最小栈设置一下,其他的根据自己的工程来。
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第9张图片

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

3、测试代码

打开工程后,直接在fatfs.c里面,编写一个测试代码,如下
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第10张图片
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第11张图片
然后在main.c里面的开始任务里面加入测试代码
三分钟教你玩转cubeMX+USB+FATFS+FREERTOS_第12张图片

4、结论

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

你可能感兴趣的:(技术,STM32,C/C++)