📄 stm32f10x_sdio.c
字号:
/*******************************************************************************
* 函数名称: SDIO_SendCEATACmd
* 功能描述: Sends CE-ATA command (CMD61).[发送CE-ATA命令]
* 输入参数: NewState: new state of CE-ATA command.[CE-ATA命令的新状态]
* This parameter can be: ENABLE or DISABLE.[这个参数可以是:ENABLE or DISABLE]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_SendCEATACmd(FunctionalState NewState)
{
/* Check the parameters [检查参数]*/
assert_param(IS_FUNCTIONAL_STATE(NewState));
*(vu32 *) CMD_ATACMD_BB = (u32)NewState;
}
/*******************************************************************************
* 函数名称: SDIO_GetFlagStatus
* 功能描述: Checks whether the specified SDIO flag is set or not.[检查指定的SDIO标志是否置位]
* 输入参数: SDIO_FLAG: specifies the flag to check.[需要检查的指定标志]
* 这个参数可以是下面的值之一:
* - SDIO_FLAG_CCRCFAIL: Command response received (CRC check
* failed) [命令响应接收(CRC校验失败)]
* - SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check
* failed)[数据块发送/接收(CRC校验失败)]
* - SDIO_FLAG_CTIMEOUT: Command response timeout[命令响应超时]
* - SDIO_FLAG_DTIMEOUT: Data timeou [数据超时]
* - SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error[发送FIFO空栈读出错]
* - SDIO_FLAG_RXOVERR: Received FIFO overrun error[接收FIFO超速出错]
* - SDIO_FLAG_CMDREND: Command response received (CRC check
* passed)[命令响应接收(CRC校验通过)]
* - SDIO_FLAG_CMDSENT: Command sent (no response required)[命令发送(缺少必要的响应)]
* - SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is
* zero)[数据结束(数据计数器,SDIO计数器等于零)]
* - SDIO_FLAG_STBITERR: Start bit not detected on all data
* signals in wide bus mode[在宽总线模式中从所有的数据信号中找不到开始位]
* - SDIO_FLAG_DBCKEND: Data block sent/received (CRC check
* passed)[数据块发送/接收(CRC校验通过)]
* - SDIO_FLAG_CMDACT: Command transfer in progress[命令发送过程]
* - SDIO_FLAG_TXACT: Data transmit in progress[数据发送过程]
* - SDIO_FLAG_RXACT: Data receive in progress[数据接收过程]
* - SDIO_FLAG_TXFIFOHE: Transmit FIFO Half Empty[发送FIFO半空]
* - SDIO_FLAG_RXFIFOHF: Receive FIFO Half Full[接收FIFO半满]
* - SDIO_FLAG_TXFIFOF: Transmit FIFO full[发送FIFO满]
* - SDIO_FLAG_RXFIFOF: Receive FIFO full[接收FIFO满]
* - SDIO_FLAG_TXFIFOE: Transmit FIFO empty[发送FIFO空]
* - SDIO_FLAG_RXFIFOE: Receive FIFO empty[接收FIFO空]
* - SDIO_FLAG_TXDAVL: Data available in transmit FIFO [发送FIFO中数据可用]
* - SDIO_FLAG_RXDAVL: Data available in receive FIFO[接收FIFO中数据可用]
* - SDIO_FLAG_SDIOIT: SD I/O interrupt received[SD I/O中断 接收]
* - SDIO_FLAG_CEATAEND: CE-ATA command completion signal
* received for CMD61 [CMD61的CE-ATA命令完成信号接收]
* 输出参数: 无
* 返回参数: The new state of SDIO_FLAG (SET or RESET).
*******************************************************************************/
FlagStatus SDIO_GetFlagStatus(u32 SDIO_FLAG)
{
FlagStatus bitstatus = RESET;
/* Check the parameters [检查参数]*/
assert_param(IS_SDIO_FLAG(SDIO_FLAG));
if ((SDIO->STA & SDIO_FLAG) != (u32)RESET)
{
bitstatus = SET;
}
else
{
bitstatus = RESET;
}
return bitstatus;
}
/*******************************************************************************
* 函数名称: SDIO_ClearFlag
* 功能描述: Clears the SDIO's pending flags.[清除SDIO挂起标志]
* 输入参数: SDIO_FLAG: specifies the flag to clear.[要清除的指定标志]
* This parameter can be one or a combination of the following
* values:[可以使用下述值的一个或者几个值的组合]
* - SDIO_FLAG_CCRCFAIL: Command response received (CRC check
* failed) [命令响应接收(CRC校验失败)]
* - SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check
* failed)[数据块发送/接收(CRC校验失败)]
* - SDIO_FLAG_CTIMEOUT: Command response timeout [命令响应超时]
* - SDIO_FLAG_DTIMEOUT: Data timeou [数据超时]
* - SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error [发送FIFO空栈读出错]
* - SDIO_FLAG_RXOVERR: Received FIFO overrun error[接收FIFO超速出错]
* - SDIO_FLAG_CMDREND: Command response received (CRC check
* passed)[命令响应接收(CRC校验通过)]
* - SDIO_FLAG_CMDSENT: Command sent (no response required)[命令发送(缺少必要的响应)]
* - SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is
* zero)[数据结束(数据计数器,SDIO计数器等于零)]
* - SDIO_FLAG_STBITERR: Start bit not detected on all data
* signals in wide bus mode [在宽总线模式中从所有的数据信号中找不到开始位]
* - SDIO_FLAG_DBCKEND: Data block sent/received (CRC check
* passed) [数据块发送/接收(CRC校验通过)]
* - SDIO_FLAG_SDIOIT: SD I/O interrupt received[SD I/O中断 接收]
* - SDIO_FLAG_CEATAEND: CE-ATA command completion signal
* received for CMD61 [CMD61的CE-ATA命令完成信号接收]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_ClearFlag(u32 SDIO_FLAG)
{
/* Check the parameters [检查参数]*/
assert_param(IS_SDIO_CLEAR_FLAG(SDIO_FLAG));
SDIO->ICR = SDIO_FLAG;
}
/*******************************************************************************
* 函数名称: SDIO_GetITStatus
* 功能描述: Checks whether the specified SDIO interrupt has occurred or not.[检查指定的SDIO中断是否产生]
* 输入参数: SDIO_IT: specifies the SDIO interrupt source to check.[需要检查的SDIO指定中断源]
* 这个参数可以是下面的值之一:
* - SDIO_IT_CCRCFAIL: Command response received (CRC check
* failed) interrupt[命令响应接收(CRC校验失败)中断]
* - SDIO_IT_DCRCFAIL: Data block sent/received (CRC check
* failed) interrupt[数据块发送/接收(CRC校验失败)中断]
* - SDIO_IT_CTIMEOUT: Command response timeout interrupt[命令响应超时中断]
* - SDIO_IT_DTIMEOUT: Data timeout interrupt[数据超时中断]
* - SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt[发送FIFO空栈读出错中断]
* - SDIO_IT_RXOVERR: Received FIFO overrun error interrupt[接收FIFO超速出错中断]
* - SDIO_IT_CMDREND: Command response received (CRC check
* passed) interrupt[命令响应接收(CRC校验通过)中断]
* - SDIO_IT_CMDSENT: Command sent (no response required)
* interrupt[命令发送(缺少必要的响应)中断]
* - SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is
* zero) interrupt [数据结束(数据计数器,SDIO计数器等于零)中断]
* - SDIO_IT_STBITERR: Start bit not detected on all data [在宽总线模式中从所有的数据信号中找不到开始位中断]
* signals in wide bus mode interrupt
* - SDIO_IT_DBCKEND: Data block sent/received (CRC check
* passed) interrupt[数据块发送/接收(CRC校验通过)中断]
* - SDIO_IT_CMDACT: Command transfer in progress interrupt[命令发送过程 中断]
* - SDIO_IT_TXACT: Data transmit in progress interrupt[数据发送过程 中断]
* - SDIO_IT_RXACT: Data receive in progress interrupt[数据接收过程 中断]
* - SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt[发送FIFO半空 中断]
* - SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt[接收FIFO半满 中断]
* - SDIO_IT_TXFIFOF: Transmit FIFO full interrupt[发送FIFO满 中断]
* - SDIO_IT_RXFIFOF: Receive FIFO full interrupt[接收FIFO满 中断]
* - SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt[发送FIFO空 中断]
* - SDIO_IT_RXFIFOE: Receive FIFO empty interrupt[接收FIFO空 中断]
* - SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt[发送FIFO中数据可用 中断]
* - SDIO_IT_RXDAVL: Data available in receive FIFO interrupt[接收FIFO中数据可用 中断]
* - SDIO_IT_SDIOIT: SD I/O interrupt received interrupt[SD I/O中断 接收中断]
* - SDIO_IT_CEATAEND: CE-ATA command completion signal[CMD61的CE-ATA命令完成信号接收中断]
* received for CMD61 interrupt
* 输出参数: 无
* 返回参数: The new state of SDIO_IT (SET or RESET).[SDIO_IT的新状态]
*******************************************************************************/
ITStatus SDIO_GetITStatus(u32 SDIO_IT)
{
ITStatus bitstatus = RESET;
/* Check the parameters [检查参数]*/
assert_param(IS_SDIO_GET_IT(SDIO_IT));
if ((SDIO->STA & SDIO_IT) != (u32)RESET)
{
bitstatus = SET;
}
else
{
bitstatus = RESET;
}
return bitstatus;
}
/*******************************************************************************
* 函数名称: SDIO_ClearITPendingBit
* 功能描述: Clears the SDIO's interrupt pending bits.[清除SDIO中断挂起位]
* 输入参数: SDIO_IT: specifies the interrupt pending bit to clear.[需要清除的指定中断挂起位]
* This parameter can be one or a combination of the following
* values:[可以使用下述值的一个或者几个值的组合]
* - SDIO_IT_CCRCFAIL: Command response received (CRC check
* failed) interrupt[命令响应接收(CRC校验失败)中断]
* - SDIO_IT_DCRCFAIL: Data block sent/received (CRC check
* failed) interrupt [数据块发送/接收(CRC校验失败)中断]
* - SDIO_IT_CTIMEOUT: Command response timeout interrupt [命令响应超时中断]
* - SDIO_IT_DTIMEOUT: Data timeout interrupt[数据超时中断]
* - SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt [发送FIFO空栈读出错中断]
* - SDIO_IT_RXOVERR: Received FIFO overrun error interrupt[接收FIFO超速出错中断]
* - SDIO_IT_CMDREND: Command response received (CRC check
* passed) interrupt[命令响应接收(CRC校验通过)中断]
* - SDIO_IT_CMDSENT: Command sent (no response required)
* interrupt [命令发送(缺少必要的响应)中断]
* - SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is
* zero) interrupt[数据结束(数据计数器,SDIO计数器等于零)中断]
* - SDIO_IT_STBITERR: Start bit not detected on all data [在宽总线模式中从所有的数据信号中找不到开始位中断]
* signals in wide bus mode interrupt
* - SDIO_IT_SDIOIT: SD I/O interrupt received interrupt[SD I/O中断 接收中断]
* - SDIO_IT_CEATAEND: CE-ATA command completion signal
* received for CMD61[CMD61的CE-ATA命令完成信号接收中断]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_ClearITPendingBit(u32 SDIO_IT)
{
/* Check the parameters [检查参数]*/
assert_param(IS_SDIO_CLEAR_IT(SDIO_IT));
SDIO->ICR = SDIO_IT;
}
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -