先上结果 可以看到最后是成功识别出来了我的卡和对应的容量了。 开发环境 cubemx版本:6.5。 HAL库版本:1.27。RT-Thread studio版本2.2.3 具体步骤 创建项目哪些就不讲了,有很多,基于stm32f4zg芯片创建一个RT-Thread项目就可以了。 创建完成后先编译一下,烧录到板子上看有没有”hello world”循环打印。没问题就进行下一步。 先打开rt-thread的设置界面把这些默认都点上,然后ctrl+s保存一下会更新一些东西。 打开cubemx的设置,配置时钟为外部时钟,系统频率为168M,sd卡的速度为48M,不要忘记把外部输入晶振的频率改成8M,因为这个板子就是8M的外部晶振输入。
打开cubemx的SD卡配置,这里我就只使用了4线配置,中断都不开。
接下来在三个文件里进行修改board.c、board.h、cubemx/Src/main.c.
board.c最后添加extern void HAL_SD_MspInit(SD_HandleTypeDef* hsd);。
board.h里找到/*-------------------------- SDIO CONFIG BEGIN --------------------------*/字段,把里面的#define BSP_USING_SDI的注释去掉,添加#include "stm32f4xx_hal_sd.h"。
main.c里面也要添加#include "stm32f4xx_hal_sd.h",不然要报找不到sd卡数据结构的定义。然后就可以编译上板验证了。
原作者:zhenhgnici
|