31°

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

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

 

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

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

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

 

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

本文转载自博客园,原文链接:https://www.cnblogs.com/chengeputongren/p/12205892.html

全部评论: 0

    我有话说: