我是靠谱客的博主 妩媚红牛,最近开发中收集的这篇文章主要介绍STM32cubemx成功搭建SD卡和FATFS 对STM32F1,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于设置,网上很多例子,但是有些地方没有说清楚,

1. 我用的是最新的cube,库也是最新的,我相信这些基础的库一定是越更新越好。

  • NVIC,我设置的2bits与2bits,也就是原子历程里常用的group2,SDIO与DMA的中断分别为3,3、3,0;也就是DMA的中断更高;
  • RCC就不用说了、晶振这些也不说了、SYS也不用说了 ,
  • SDIO设置开启,SD卡1bit或者4bits,关键是在于分频的设置,因为我失败了很多次最后解决的办法就是 设置分频,虽然软件提示要默认0,用24MHZ,但是实际不行,各种错误,原子教程里说的是72M/(分频+2)
1bit4bits
14
24MHZ12MHZ
  • 上一步非常关键,接下来就是DMA这些了,根据自己来,优先级高低也随意
  • FATFS,只需要勾选SD卡,选择simplelified chinese GBK、Enable with…STACK、VOLUMES 设置1或者2都行、
    关于设置FATFS的参数请自己查看官方文档UM1721
  • 同时在FATFS中Platform Settings设置SD_DETECT引脚,根据自己的原理图添加引脚,然后分配给Found Solutions
  • 生成工程的时候,需要将minimum Stack Size设置为0x1000

2. 程序的使用

  • 基本初始化完成了,但是你会发现SD卡并没有初始化,记住其他设置不需要动,我们直接开始用
  • FATFS_LinkDriver(&SD_Driver, SDPath)的作用是将SD—Driver中的初始化函数地址给SDPath,所以f_mount时必须用
void MX_FATFS_Init(void)
{
retSD = FATFS_LinkDriver(&SD_Driver, SDPath);
if(retSD
== FR_OK)
{
if( f_mount(&SDFatFS,(const TCHAR*)SDPath,1) == FR_OK)
{
if( f_open(&SDFile,"sdtest.txt",FA_READ|FA_OPEN_ALWAYS) == FR_OK)
{
f_read(&SDFile,buff,100,&CONT);
}
}
}
}

如果出现各种错误,按照我的顺序每一步都确认一下,关键的就是分频的问题,原子的教程里也是1bit用24MHZ,4bits用12MHZ

最后

以上就是妩媚红牛为你收集整理的STM32cubemx成功搭建SD卡和FATFS 对STM32F1的全部内容,希望文章能够帮你解决STM32cubemx成功搭建SD卡和FATFS 对STM32F1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部