第十三章 宝马1768—— SPI_(SD卡刷图)
开发环境:集成开发环境μVision4 IDE版本4.60.0.0 主机系统:Microsoft Windows XP 开发平台:旺宝NXP LPC1768开发板
13.1 SPI配置 13.2 硬件描述 13.3 程序说明 13.4 实验现象
1、SPI的配置: LPC1768有一个串行外设SPI接口,可以工作在主机或者从机模式下。下面看一下LPC1768的 SPI寄存器描述,一共7个寄存器分别是:SPI控制寄存器S0SPCR,状态寄存器S0SPSR,数据寄存器S0SPDR,时钟计数器寄存器S0SPCCR,测试控制寄存器SPTCR,测试状态寄存器SPTSR,和中断寄存器S0SPINT.其中两个寄存器只有在测试中使用,正常使用时,不会用到这两个寄存器,测试控制寄存器SPTCR,测试状态寄存器SPTSR。 第一个控制寄存器S0SPCR BIT1:0保留 BIT2,传输数据位时能,为0:每次传输8bit,位1时有后面的11:8位决定,根据具体情况这个地方我们用8bit就行了及这位设置为0. BIT3,时钟相位控制,为0:数据在SCK第一个时钟采集,为1:数据在SCK第二个时钟采集,这里我们用0在第一个时钟沿采集。 BIT4,时钟极性控制,为0:上升沿有效,位1:下降沿有效,这里要下降沿有效设置为1 BIT5,主从机模式控制,设置成主模式,既设置成1。 BIT6,数据移动控制,设置成高位在前,既设置为0. BIT7,中断时能,不时能设为0. BIT11:8不用理会。 有上面分析,得出我们的设置S0SPCR = 0x30; 第二个状态寄存器S0SPSR,我们感兴趣就只有第七位,是否发送完成 BIT2:0保留 BIT3,从机中止。此位为1表示发生了从机中止,读取该寄存器时,改为自动清零。 BIT4,模式错误。该位为1时,表示发生了模式错误。 BIT5,读溢出,该位为1时,表示发生了读溢出。当读该寄存器时,该位清零。 BIT6,写冲突。该位为1时,表示发生了写冲突。如果要清零此位,先读取该寄存器,再写SPI 控制寄存器。 BIT7,SPI传输完成标志。该位为1时,表示一次SPI数据传输完成。在主机模式下,该位在传输的最后一个周期置位。在从机模式下,该位在DXK的最后一个数据采样边沿置位。如果要清零该位,首先读取该寄存器,然后再访问SPI数据寄存器。 此寄存器,我们只关心BIT7,用于检测是否发送完成。 第三个数据存储器S0SPDR 存放要发送的数据。数据为BIT7:0低八位。 第四个时钟计数器寄存器S0SPCCR 此寄存器对主机时钟进行分频。 在主机模式下,该寄存器必须大于等于8的偶数倍。 在从机模式下,主机提供的SPI时钟速率不能大于SPI外设时钟的1/8。 第五个寄存器、第六个寄存器用不到,此处不讲。 第七个中断寄存器S0SPINT BIT0:中断标志位。 以上为SPI的介绍,SD卡刷图片需要SPI驱动SD卡,再加入FAT文件系统,就可以读写SD卡了。关于LCD屏的显示,请参考LCD的章节。 2、硬件描述: 3、程序说明: SPI数据收发 主函数 4、实验现象: 此程序为读取SD卡中的图片,2G的sd卡格式成fat32,把MUSIC文件夹直接拷贝到卡中,然后将卡插到开发板的SD卡槽中(文件夹照片要求,.BMP格式就可以)。 下载程序后,可以看到图片解码后显示在3.2寸lcd上。
|