⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_port.c

📁 用于arm(STR710系列)对sd卡的操作
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          STR710 development team
**                                          
**
**                                 
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: port.c
** 创 建 人: lhl
** 创建日期: 2006年5月27日
** 描    述: MMC/SD硬件抽象层函数、变量定义
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: lhl
** 版    本: V1.0
** 日   期: 2006年5月27日
** 描   述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"


/***************************************** 函数原型声明  ************************************************/
void mc_port_init(void)
{

	BSPI_Enable(MC_PORT, ENABLE);				/* 允许指定类型的BSPI           			*/
	BSPI_MasterEnable(MC_PORT, ENABLE);			/* 配置指定的BSPI为MASTER模式   			*/
	BSPI_ClkActiveHigh(MC_PORT, ENABLE);	
	BSPI_ClkFEdge(MC_PORT,ENABLE);				/* 允许捕捉的第一个数据在SCK的第一个边沿 	*/	
	BSPI_8bLEn(MC_PORT, ENABLE);				/* 设置数据宽度为8位 						*/
	BSPI_TransmitFifoCfg(MC_PORT, 1);			/* 配置发送FIFO的长度为8 WORDS 				*/	
	BSPI_ReceiveFifoCfg(MC_PORT, 1);			/* 配置发送FIFO的长度为8 WORDS 				*/	
	//BSPI_FifoDisable(MC_PORT);
	
}


/*********************************************************************************************************
;** 函数名称: mc_send_byte
;** 功能描述: 发送一个字节
;** 
;** 参    数: byte:发送的字节
;**
;** 返 回 值: None
;**         
;** 作   者: lhl
;** 日   期: 2006年5月28日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void mc_send_byte(UWORD8 byte)
{
	UWORD8 temp = 0xFF;
	
	while(BSPIx_CSR2(MC_PORT)&BSPI_RFNE)
  		temp = BSPIx_RXR(MC_PORT);
	while(!(BSPIx_CSR2(MC_PORT)&BSPI_TFE));    
  	BSPIx_TXR (MC_PORT)= byte<<8;              
  	while(!(BSPIx_CSR2(MC_PORT)&BSPI_RFF));    
  	temp = BSPIx_RXR(MC_PORT)>>8;    
}

/*********************************************************************************************************
;** 函数名称: mc_receive_byte
;** 功能描述: 接收一个字节
;** 
;** 参    数: None
;**
;** 返 回 值: None
;**         
;** 作   者: lhl
;** 日   期: 2006年5月28日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
UWORD8 mc_receive_byte(void)
{
  	UWORD8 temp = 0xaa;
	UWORD8 data = 0xFF;
	
	while(BSPIx_CSR2(MC_PORT)&BSPI_RFNE)
  		temp = BSPIx_RXR(MC_PORT);
	while(!(BSPIx_CSR2(MC_PORT)&BSPI_TFE));    
  	BSPIx_TXR (MC_PORT)= (UWORD16)data<<8;             
  	while(!(BSPIx_CSR2(MC_PORT)&BSPI_RFF));    
  	temp = BSPIx_RXR(MC_PORT)>>8; 
	
	return(temp); 
	
} 

UWORD8 mc_check_card(void)
{
	
	if (MC_CARD_INSERTED_STATUS() != 0)
		return 0;								/* 未完全插入  */
	else
		return 1;								/* 完全插入  */
}

UWORD8 mc_sd_metch_wp_status(void)
{
	if (MC_WP_STATUS() != 0)
		return 0;								/* 未完全插入  */
	else
		return 1;								/* 完全插入  */
}

/**********************************************end of file***********************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -