STM32H743 sd fatfs调试记录

由于项目需要在sd卡上使用fatfs,在调试中遇到了许多坑,记录一下。

采用安富莱的v7开发板sd fat驱动,在自己做的板子上稍加修改,没有问题。后来把sd驱动部分移植到原来的工程中,发现了很多问题。主要修改如下:

1.修改starup_stm32h743xx.s文件中的stack,heap大小。fatfs需要保存一些东西,必须要加大。

Stack_Size		EQU     0x1000

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size      EQU     0x800

2. 时钟滴答定时,在以前的程序中没有定义,在fatfs需要这个定时服务

void SysTick_Handler(void)

void SysTick_ISR(void)

g_ucEnableSystickISR = 1;    //这个变量为1启动定时器服务

3.最大的坑是 时钟初始化函数,由于以前的工程是按照HSE输入24MHz配置的,V7开发板用的是25Mhz时钟,因此PLL1配置参数不一样。PLL1中的PLLQ是配置给SDMMC的时钟分频,很多博文说需要把这个时钟配置到48MHz,但实际上SDMMC初始化时还有一个时钟分频,经过测试这个PLLQ分频后的时钟需要小于100MHz,工程中用的是8,也就是400MHz/8=50Mhz.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值