📄 stm32f10x_sdio.c
字号:
assert_param(IS_SDIO_DPSM(SDIO_DataInitStruct->SDIO_DPSM));
/*---------------------------- SDIO DTIMER Configuration ---------------------*/
/* Set the SDIO Data TimeOut value [设置SDIO数据超时值]*/
SDIO->DTIMER = SDIO_DataInitStruct->SDIO_DataTimeOut;
/*---------------------------- SDIO DLEN Configuration -----------------------*/
/* Set the SDIO DataLength value [设置SDIO数据长度值]*/
SDIO->DLEN = SDIO_DataInitStruct->SDIO_DataLength;
/*---------------------------- SDIO DCTRL Configuration ----------------------*/
/* Get the SDIO DCTRL value [取得SDIO DCTRL值]*/
tmpreg = SDIO->DCTRL;
/* Clear DEN, DTMODE, DTDIR and DBCKSIZE bits [清DEN, DTMODE, DTDIR和DBCKSIZE位]*/
tmpreg &= DCTRL_CLEAR_MASK;
/* Set DEN bit according to SDIO_DPSM value [依照SDIO_DPSM的值设置DEN位]*/
/* Set DTMODE bit according to SDIO_TransferMode value [依照SDIO_TransferMode的值设置DTMODE位]*/
/* Set DTDIR bit according to SDIO_TransferDir value [依照 SDIO_TransferDir的值设置DTDIR位]*/
/* Set DBCKSIZE bits according to SDIO_DataBlockSize value [依照SDIO_DataBlockSize的值设置DBCKSIZE位]*/
tmpreg |= (u32)SDIO_DataInitStruct->SDIO_DataBlockSize | SDIO_DataInitStruct->SDIO_TransferDir
| SDIO_DataInitStruct->SDIO_TransferMode | SDIO_DataInitStruct->SDIO_DPSM;
/* Write to SDIO DCTRL [写SDIO DCTRL]*/
SDIO->DCTRL = tmpreg;
}
/*******************************************************************************
* 函数名称: SDIO_DataStructInit
* 功能描述: Fills each SDIO_DataInitStruct member with its default value.[用默认值填充SDIO_DataInitStruct的每一个成员]
* 输入参数: SDIO_DataInitStruct: pointer to an SDIO_DataInitTypeDef
* structure which will be initialized.[指向包含着SDIO命令配置信息的结构体SDIO_DataInitTypeDef的指针]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
{
/* SDIO_DataInitStruct members default value [SDIO_DataInitStruct成员的默认值]*/
SDIO_DataInitStruct->SDIO_DataTimeOut = 0xFFFFFFFF;
SDIO_DataInitStruct->SDIO_DataLength = 0x00;
SDIO_DataInitStruct->SDIO_DataBlockSize = SDIO_DataBlockSize_1b;
SDIO_DataInitStruct->SDIO_TransferDir = SDIO_TransferDir_ToCard;
SDIO_DataInitStruct->SDIO_TransferMode = SDIO_TransferMode_Block;
SDIO_DataInitStruct->SDIO_DPSM = SDIO_DPSM_Disable;
}
/*******************************************************************************
* 函数名称: SDIO_GetDataCounter
* 功能描述: Returns number of remaining data bytes to be transferred.[返回发送剩余数据字节数]
* 输入参数: 无
* 输出参数: 无
* 返回参数: Number of remaining data bytes to be transferred[发送剩余数据字节数]
*******************************************************************************/
u32 SDIO_GetDataCounter(void)
{
return SDIO->DCOUNT;
}
/*******************************************************************************
* 函数名称: SDIO_ReadData
* 功能描述: Read one data word from Rx FIFO.[从Rx FIFO读一个数据字]
* 输入参数: 无
* 输出参数: 无
* 返回参数: Data received[接收的数据]
*******************************************************************************/
u32 SDIO_ReadData(void)
{
return SDIO->FIFO;
}
/*******************************************************************************
* 函数名称: SDIO_WriteData
* 功能描述: Write one data word to Tx FIFO.[向Tx FIFO内写一个数据字]
* 输入参数: Data: 32-bit data word to write.[32位的数据字]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_WriteData(u32 Data)
{
SDIO->FIFO = Data;
}
/*******************************************************************************
* 函数名称: SDIO_GetFIFOCount
* 功能描述: Returns the number of words left to be written to or read
* from FIFO.[返回一个FIFO读写剩余的字数]
* 输入参数: 无
* 输出参数: 无
* 返回参数: Remaining number of words.[剩余的字数]
*******************************************************************************/
u32 SDIO_GetFIFOCount(void)
{
return SDIO->FIFOCNT;
}
/*******************************************************************************
* 函数名称: SDIO_StartSDIOReadWait
* 功能描述: Starts the SD I/O Read Wait operation.[开始SD I/O读等待操作]
* 输入参数: NewState: new state of the Start SDIO Read Wait operation.[启动读等待操作的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_StartSDIOReadWait(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) DCTRL_RWSTART_BB = (u32) NewState;
}
/*******************************************************************************
* 函数名称: SDIO_StopSDIOReadWait
* 功能描述: Stops the SD I/O Read Wait operation.[停止SD I/O读等待操作]
* 输入参数: NewState: new state of the Stop SDIO Read Wait operation.[停止读等待操作的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_StopSDIOReadWait(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) DCTRL_RWSTOP_BB = (u32) NewState;
}
/*******************************************************************************
* 函数名称: SDIO_SetSDIOReadWaitMode
* 功能描述: Sets one of the two options of inserting read wait interval.[设置两个插入读等待时间选项中的一个]
* 输入参数: SDIOReadWaitMode: SD I/O Read Wait operation mode.[SD I/O读等待模式]
* This parametre can be:[这个参数可以是]
* - SDIO_ReadWaitMode_CLK: Read Wait control by stopping SDIOCLK[停止SDIOCLK控制读等待]
* - SDIO_ReadWaitMode_DATA2: Read Wait control using SDIO_DATA2[SDIO_DATA2控制读等待]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_SetSDIOReadWaitMode(u32 SDIO_ReadWaitMode)
{
/* Check the parameters [检查参数]*/
assert_param(IS_SDIO_READWAIT_MODE(SDIO_ReadWaitMode));
*(vu32 *) DCTRL_RWMOD_BB = SDIO_ReadWaitMode;
}
/*******************************************************************************
* 函数名称: SDIO_SetSDIOOperation
* 功能描述: Enables or disables the SD I/O Mode Operation.[使能或者禁止SD I/O模式操作]
* 输入参数: NewState: new state of SDIO specific operation.[SDIO指定操作的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_SetSDIOOperation(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) DCTRL_SDIOEN_BB = (u32)NewState;
}
/*******************************************************************************
* 函数名称: SDIO_SendSDIOSuspendCmd
* 功能描述: Enables or disables the SD I/O Mode suspend command sending.[使能或者禁止SD I/O模式中止命令发送]
* 输入参数: NewState: new state of the SD I/O Mode suspend command.[SD I/O模式中止命令发的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_SendSDIOSuspendCmd(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) CMD_SDIOSUSPEND_BB = (u32)NewState;
}
/*******************************************************************************
* 函数名称: SDIO_CommandCompletionCmd
* 功能描述: Enables or disables the command completion signal.[使能或者禁止命令完成信号]
* 输入参数: NewState: new state of command completion signal.[命令完成信号的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_CommandCompletionCmd(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) CMD_ENCMDCOMPL_BB = (u32)NewState;
}
/*******************************************************************************
* 函数名称: SDIO_CEATAITCmd
* 功能描述: Enables or disables the CE-ATA interrupt.[使能或者禁止CE-ATA中断]
* 输入参数: NewState: new state of CE-ATA interrupt.[CE-ATA中断的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_CEATAITCmd(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) CMD_NIEN_BB = (u32)((~((u32)NewState)) & ((u32)0x1));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -