1.创建项目
首先创建一个,注意使用的RT-Thread的版本为5.1.0(不同版本可能会有差异)
创建项目完成先编译,会发现bord.c会有error
这个应该是该版本代码的bug希望后续可以完善。
通过报错发现是缺少该类型的定定义
通过其他版本的代码把这个定义COPY过来
再编译就没问题了。
2.打开组件
打开FATFS组件,DFS组件是FATFS的依赖项,打开FATFS后会直接打开DFS。
3.设置组件-》设备驱动程序,打开USB,使能U盘驱动程序。
环境配置好之后,接下来就开始write code了。
我们要知道,再rtt中硬件配置都是再drivers/board.h中通过宏统一控制的。
4.打开board.h,找到宏定义,根据官方说明的步骤来配置。
第一步让我们打开驱动框架支持,这部分我们已经完成了,已经打开的FATFS框架和DFS已经是了。
第二步我们在board.c中打开这个宏
第三步和第四步我们要使用STM32CubeMX来进行代码配置(本质上还是使用HAL库进行配置)来生成所需函数。
5.使用STM32CubeMX
第一部根据我们的MCU芯片来开始我们的项目。
搜索对应的芯片双击生成项目。
首先配置RCC时钟控制器(一般都是配置为高速外部时钟,由外部晶振控制,)这个结合自己板子配置
然后再打开USB_OTG_FS
检查一下时钟树,再配置一下项目就可以了
生成项目并打开文件夹
找到项目文件夹,找到对应文件,获取对应的函数
6.第三步添加代码
根据board.h中官方声明,第三步我们要将stm32l4xx_hal_msp.c文件中的HAL_HCD_MspInit函数添加到board.c的末尾。
7.第四步修改时钟
将main.c文件中的SystemClock_Config()函数替换board.c中的此功能。直接替换drv_clk.c中的该函数,并把传参取消
8.第五步修改错误
我们在stm32l4xx_hal_conf.h打开#define HAL_HCD_MODULE_ENABLED这个宏定义,然后编译。然后我们发现有个错误(版本问题,希望官方完善),我们直接修改。
还有一个错误RT_DEBUG_LOG未定义,从其他版本直接拿过来修改
接打印测试,OK!
下班!