📄 mc_port.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 + -