引言
本文为RT-Thread Studio 使用STM32CubeMX联合开发中——基于SPI通信,SFUD驱动,FAL组件使用W25Q32的读写。主要涉及:
- SPI配置:最基本硬件接口;
- SFUD配置:基于与W25Q32交互的驱动;
- FAL配置:SFUD配置的抽象层;
先看层级关系。
一、CubeMX配置SPI
打开全输主SPI模式,我的芯片SPI最高支持18M,这里我设置15M。设置好后生成代码,然后关闭CubeMX。
二、RT-Thread Studio配置
设备驱动里面打开SPI、打开SFUD、显示更多SFUD调试信息(可选)。
打开FAL组件、打开FAL使用SFUD驱动、驱动名称修改为W25Q32(可选)。
保存。编译,然后发现一大堆错误,这是因为还要去修改代码。
三、代码配置
(1)SPI配置
去到CubeMX生成的 main.c 文件里面加入以下代码。这是为了让外部的RT-Thread去调用我们SPI的初始化。如果你的是SPI1就在里面放SPI1的初始化代码。
void RTT_STM32_HAL_SPI_Init(void)
{
MX_SPI2_Init();
}
打开 board.h 文件,打开里面SPI相关的宏。我用的是SPI2,所以打开SPI2。
打开 board.c 文件,调用我们刚才的SPI初始化代码。
(2)FAL配置
移动 fal_cfg.h 到 fal 目录下的 inc 文件夹中。
移动 fal_flash_sfud_port.c 到 fal 目录下的 src 文件夹中。