void MMC_HardwareInitial(void)
{
*pDEVICE_OE = ~SD_SEL;/*SPI_OE:0,使能SPISEL选通开关*/
// CPLD内部SPI选择,开关,在CPLD内部做了一个2选1的开关,用来切换触摸屏和SD卡,该配置使能选通开关,并且将选通开关“拨至”SPISEL2(PF2)管脚通过CPLD连通SD卡的片选。
*pFIO_DIR = PF2;//?pFIO_DIR指向的地址和pf2的值?
*pFIO_FLAG_S = PF2;
//次配置属于冗余,在BF533处理器0.3版本以前,使用SPI接口片选,必须通过IO方式配置为输出,现在的0.5和0.6版本的芯片不需要这样配置,因为最早代码是在0.3版本以前的BF533上运行的,这里没有删除。
*pSPI_FLG = FLS2;
//使用SPISEL2片选
*pSPI_BAUD = 550;
//SPI速度配置,SCLK/(2*SPI_BAUD),为兼容更多的卡,这里配置的比较慢,可根据卡实际情况来提高速度。
*pSPI_CTL = 0x0000; //清寄存器,可以不写
*pSPI_CTL = 0x0001 | MSTR ; //配置为主模式,传输中断方式,自动片选,匹配时序等
*pSPI_CTL = (*pSPI_CTL | SPE);//使能,通常配置完寄存器后,最后再使能
}
关于每个寄存器的含义,可以运行VDSP软件,找到软件上的帮助按钮(问号上有个望远镜)或菜单下的帮助,会打开一个帮助文件,然后将寄存器名输入搜索中,进行搜索,在搜索结果中找到相应的处理器,寻找该处理器下的寄存器说明。
如搜索: SPI_CTL ,就可以找到这个控制器的含义。