STM32_SPI驱动分析(SD卡)-(2011/01/22)

来源:互联网 发布:绘画书籍推荐 知乎 编辑:程序博客网 时间:2024/05/21 17:54

STM32_SPI驱动分析(SD)

-------lshiceman  2011/01/22

 

        SD卡有两个可选的通信协议:SD模式和SPI模式。为了电路和程序的简化,选用SPI模式。ZC09SDSTM32通过SPI1连接。因为STM32内部集成了SPI控制器,所以只需简单的配置,就能实现SPI时序。

 

一、配置SPI1控制器

1、首先要打开SPI1的时钟,并且要打开SPI1信号线所在GPIO口的时钟。由于SPI1的信号线是在GPIOA上,所以用以下代码打开所需要时钟。这里要注意的是,打开SPI1GPIOA 最好一起打开,因为本人试过先打开SPI1的时钟,然后再相隔了几行代码后才打开GPIOA的时钟,这样导致SD卡操作失败。

    

 

2、将GPIOA567脚配置为复用推挽输出、50MHz 

 

 

3、SD卡的使能脚直接连接到STM32GPIOB15脚上,所以也想对此脚进行配置。

    

 

4、接下来是配置SPI1控制器,根据SD卡的数据手册,配置SPI1控制器的寄存器。                    

   

5、配置好后就可以启动SPI1控制器。

 

二、编写其它SPI驱动

1、由于SD上电后的操作是处于低速模式下的,所以SD卡上电后的操作必需在小于400kHz,因此我们要写一个可以设置SPI速度的接口。

 

2、SPI读写驱动

 

 

0 0