小磷光一

BF533实现CF卡的各种状态请求功能

0
阅读(2051)

 

#include    "dm_bf5xx.h"
/****************************************************************************
* 名称 : CF_Soft_Reset
* 功能 : 复位CF卡
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void CF_Soft_Reset(void)
{
    *RESET_REG  = CF_SRESET;
	udelay(1000);
    *RESET_REG  = 0x00;
}
/****************************************************************************
* 名称 : Check_CF_Busy
* 功能 : 检查CF卡忙状态
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Check_CF_Busy(void)
{
	while( *STATUS_REGISTER & CF_Busy_FLAG);			
}
/****************************************************************************
* 名称 : Check_CF_RDY_Status
* 功能 : 检查CF卡是否准备好
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Check_CF_RDY_Status(void)
{
	while(!( *STATUS_REGISTER & CF_RDY_FLAG));				
}
/****************************************************************************
* 名称 : Check_CF_ERR_Status
* 功能 : 检查CF卡是否出错
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Check_CF_ERR_Status(void)
{
	while(( *STATUS_REGISTER & CF_ERR_FLAG));	

}
/****************************************************************************
* 名称 : Check_CF_DRQ_Status
* 功能 : 检查CF卡DRQ状态
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Check_CF_DRQ_Status(void)
{
	while(1)
	{
		if( (*STATUS_REGISTER & 0xff00 ) == 0x5800)break;
	}
}