打印
[应用相关]

SPI实验移植SD卡(spi方式)初始化失败的问题

[复制链接]
1727|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
東南博士|  楼主 | 2018-2-26 14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发板是阿波罗f4,移植例程是SPI实验,主要是想实现通过SPI通信方式挂载SD卡,移植过程如下1.添加MMC_SD相关头文件;
2.修改SPI头文件(这里主要是将spi5改为spi2)
  a.将spi头文件里spi2字眼改为soi5;
  b.将HAL_SPI_MspInit()函数IO口初始化改为b13,14,15;
  c.将cs引脚改为a4;
4.主函数内容如下

沙发
東南博士|  楼主 | 2018-2-26 14:06 | 只看该作者
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "sdram.h"
#include "MMC_SD.h"

使用特权

评论回复
板凳
東南博士|  楼主 | 2018-2-26 14:06 | 只看该作者
//要写入到W25Q16的字符串数组
const u8 TEXT_Buffer[]={"Apollo STM32F4 SPI TEST"};
#define SIZE sizeof(TEXT_Buffer)  

使用特权

评论回复
地板
東南博士|  楼主 | 2018-2-26 14:07 | 只看该作者
int main(void)
{
    u8 key;
        u16 i=0;
        u8 datatemp[SIZE];
        u32 FLASH_SIZE;
    HAL_Init();                     //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
    uart_init(115200);              //初始化USART
    LED_Init();                     //初始化LED
    SDRAM_Init();                   //初始化SDRAM
        LED0=0;
        LED1=0;
                while(SD_Init());
        LED0=0;
        LED1=1;
        while(1)                                                               
        {
               
        }                    
}

使用特权

评论回复
5
東南博士|  楼主 | 2018-2-26 14:07 | 只看该作者
运行时程序卡while(SD_Init())这个初始化里出不去。

使用特权

评论回复
6
mmuuss586| | 2018-2-26 15:15 | 只看该作者
例程一般不会有问题;
看下是否哪里连接不正常啊

使用特权

评论回复
7
yiy| | 2018-2-26 19:28 | 只看该作者
你一直初始化肯定不行了。

使用特权

评论回复
8
稳稳の幸福| | 2018-2-26 21:47 | 只看该作者
接线肯定有毛病,或者是不是SD卡锁了。

使用特权

评论回复
9
Stannis| | 2018-2-27 15:05 | 只看该作者
估计是硬件的问题,例程错的可能不大

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

382

主题

6081

帖子

34

粉丝