STM32F429的SPI驱动遇到的一个坑!!

最近在做项目要用到FATFS文件系统和SD卡驱动,SD卡驱动我用的是SPI的通信方式,在挂载文件系统是总是挂载失败了,经过检查,才发现SPI在接收时候卡死:

 为了寻找问题的原因,整个人都快疯了,最终我发现一个函数有一个大坑!!

由于我需要在读取或写入SD数据时要把SPI的波特率调大些,就写了下面这个函数,定义了一个结构体变量,因为SPI_InitStructure是局部变量,所以这个变量成员都是随机值,况且我只配置了一个成员,这样一来导致整个SPI的参数都乱了!!!

C语言基础真的很重要,有些BUG的产生都是因为基础不牢固导致的。

 修改如下,直接配置寄存器就行了

主要记录的是学习听课的笔记
原文地址:https://www.cnblogs.com/chengeputongren/p/12205892.html