STM32H743的SD卡读写测试(SDIO)

STM32H743的SD卡读写测试(SDIO)水平不行 光入坑了 每次爬出来都精疲力竭 把野火的 SD 卡测试程序 移植到字节的 xi 项目中 说啥也不行 直接用野火的程序就 OK 移植过来就不行 除了移植程序相关的 h c 文件外 发现一个很坑的文件 就是那个 hal conf 文件 这里除了定义包含哪些库文件 还有其他的一些定义 已经不止一次被这个文件坑死 这次移植 sd 卡程序 我的项目程序的 conf 文件 多了一行定义 defineUS

水平不行,光入坑了。每次爬出来都精疲力竭。

把野火的SD卡测试程序,移植到字节的xi项目中,说啥也不行,直接用野火的程序就OK,移植过来就不行。

除了移植程序相关的.h.c文件外,发现一个很坑的文件,就是那个hal_conf文件。这里除了定义包含哪些库文件,还有其他的一些定义,已经不止一次被这个文件坑死。

这次移植sd卡程序,我的项目程序的conf文件,多了一行定义

#define  USE_SD_TRANSCEIVER           1U               /*!< use uSD Transceiver */

野火的程序里没有。

然后我的程序要么初始化失败,要么卡在Wait_SDCARD_Ready()这个函数里出不来,后来把定义改成

#define  USE_SD_TRANSCEIVER           0U               /*!< use uSD Transceiver */

这样就能初始化成功了,也不卡在上面那个函数里了。但是读写还是不行

后来发现野火程序里写了一句:SDMMC只能访问AXI_SRAM

然后我就把用于读写SD卡的数组定义到了AXI_SRAM,但是还是不行。简直要崩溃

有病乱投医,又改了3个地方

一个是SDMMC的分频: uSdHandle.Init.ClockDiv            = 8;

原来是0.  改成了8

一个是systick的中断优先级,在conf文件里:#define  TICK_INT_PRIORITY            ((uint32_t)0x0E) /*!< tick interrupt priority */

另一个是SDMMC的中断优先级:HAL_NVIC_SetPriority(SDMMC1_IRQn,3,0);  //配置SDMMC1中断

然后。。。。。。。

奇迹出现了!!!!

读写测试成功了!!!!

2020年1月1日,计划是把fatfs调好,没想到从早调到晚上,不带fatfs的程序都一直没整明白。还好苦心人天不负,得到点安慰!

水平不行,光入坑了,程序照抄都抄不明白。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233067.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django(59)验证和授权[通俗易懂]

    Django(59)验证和授权[通俗易懂]验证和授权概述Django有一个内置的授权系统。他用来处理用户、分组、权限以及基于cookie的会话系统。Django的授权系统包括验证和授权两个部分。验证是验证这个用户是否是他声称的人(比如用户名

    2022年8月7日
    2
  • 【python】sklearn中PCA的使用方法

    【python】sklearn中PCA的使用方法fromsklearn.decompositionimportPCAPCA主成分分析(PrincipalComponentsAnalysis),简称PCA,是一种数据降维技术,用于数据预处理。PCA的一般步骤是:先对原始数据零均值化,然后求协方差矩阵,接着对协方差矩阵求特征向量和特征值,这些特征向量组成了新的特征空间。sklearn.decomposition.PC…

    2022年10月18日
    5
  • vc++可以编辑c语言吗?_vc6.0使用教程详解

    vc++可以编辑c语言吗?_vc6.0使用教程详解如何编写自己的VCL控件    用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    VCL控件的开源,给我们带来了享之不尽的优点。不像曾经的ole控件以及ActiveX,你全然能够重写Delphhi标准控件,并且网上这方面的资源非常多。    关于怎样编写VCL控…

    2022年9月25日
    3
  • docker dockerfile详解_进入docker容器命令

    docker dockerfile详解_进入docker容器命令前言Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile简介Dockerfile是用来构建Docker镜像的构建文件,是由一系列

    2022年7月30日
    7
  • java nextline next_java中的nextLine函数

    java nextline next_java中的nextLine函数今天在学习java异常处理的时候,下面这段程序中的nextLine()的用法怎么也看不明白。初学者看到这段代码会误以为程序中的input.nextLine()这句是多余的。其实,不使用这句的话,如果输入不是整数,程序会陷入死循环。当你不加input.nextLine()时,你输入小数,try块中给input.nextInt()就无法执行,因为小数无法被读取,我猜是小数一直留在键盘缓冲区。这时con…

    2022年5月6日
    60
  • 基本布局-QHBoxLayout类、QVBoxLayout类、QGridLayout类

    基本布局-QHBoxLayout类、QVBoxLayout类、QGridLayout类(1)新建QtWidgetApplication,项目名UserInfo,基类QDialog,取消创建界面;(2)打开dialog.h头文件,在头文件中声明对话框中的各个控件,添加代码#ifndefDIALOG_H#defineDIALOG_H#include//添加头文件#include#include#inclu

    2022年6月21日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号