首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 常用文档 > 调试STM32+FATFS+SDIO的总结

调试STM32+FATFS+SDIO的总结

资料介绍
调试STM32+FATFS+SDIO的总结
这两天调试 stm32 单片机的 sdio 接口读写 sd 卡,把调试经验总结一下。
我首先采用的是官方例程里面得 dma 方式,直接使用官方提供的 sdcard.c 文件。首先声明一个 uint32 类型的数据缓冲区,读写 sd 卡的
每个扇区完全正常,随后添加 fatfs 的文件,然后改好接口函数,其中有一处做了强制转换,就是 fatfs 声明的缓冲区都是 uint8*类型的,而
sdcard.c 文件要求为 uint32*类型,所以我把 uint8*强制转换为 uint32*类型。编译成功后执行,结果 fatfs 的初始化函数返回“没有文件系统”,
经过多次小改动后重试,问题依然如此,后来我怀疑是我强制转换出的问题,为了验证我的想法,我做了如下程序:

#include
#include

void main(void)
{
unsigned char i;//AA[] = {0,1,2,3,4,5,6,7,8,9,0,4};
unsigned char * aa;
unsigned int * bb;

for(i=0;i<10;i++)
{
*(aa+i) = i;
}

bb = (unsigned int *)aa;
printf("bb is: 0X%04x \n",*bb);
bb = (unsigned int *)(aa+1);
printf("bb is: 0X%04x \n",*bb);
while(1);
}

以上程序验证结果为:在 IAR EWARM 5.40 中,强制转换不会对数据存取产生影响。
既然不是这个问题,那会是什么呢?!我只好……
标签:STM32FATFSSDIO
调试STM32+FATFS+SDIO的总结
本地下载

评论