原创 汉化STM32F2.02版固件库之最后一篇(SDIO)

2008-8-13 20:43 7627 6 25 分类: MCU/ 嵌入式

/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* 文件名称: stm32f10x_sdio.c
* 程序作者: MCD Application Team
* 程序版本: V2.0.2
* 编制日期: 07/11/2008
* 功能描述: 这个文件提供了所有SDIO的固件函数.
********************************************************************************
* 目前的固件的目的是为客户提供关于他们的产品的编码信息以便于节省他们时间。
* 结果, 意法半导体将不会为此承担任何直接,间接或相应的损害赔偿方面的任何索赔要求,
* 例如固件或使用所作的客户编码中他涉嫌包含与他们的相关产品的信息。
*******************************************************************************/
/*******************************************************************************
* 函数名称: SDIO_DeInit
* 功能描述: Deinitializes the SDIO peripheral registers to their default
*                  reset values[取消SDIO设备寄存器的初始化还原到他们的默认值].
* 输入参数: 无
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_DeInit(void)
{
  SDIO->POWER = 0x00000000;
  SDIO->CLKCR = 0x00000000;
  SDIO->ARG = 0x00000000;
  SDIO->CMD = 0x00000000;
  SDIO->DTIMER = 0x00000000;
  SDIO->DLEN = 0x00000000;
  SDIO->DCTRL = 0x00000000;
  SDIO->ICR = 0x00C007FF;
  SDIO->MASK = 0x00000000;
}


/*******************************************************************************
* 函数名称: SDIO_Init
* 功能描述: Initializes the SDIO peripheral according to the specified
*                  parameters in the SDIO_InitStruct[依照SDIO_InitStruct结构体指定的参数初始化SDIO设备].
* 输入参数: SDIO_InitStruct : pointer to a SDIO_InitTypeDef structure
*                  that contains the configuration information for the SDIO
*                  peripheral.[指向包含着SDIO设备配置信息的结构体SDIO_InitTypeDef的指针]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct)
{
  u32 tmpreg = 0;
   
  /* Check the parameters [检查参数]*/
  assert_param(IS_SDIO_CLOCK_EDGE(SDIO_InitStruct->SDIO_ClockEdge));
  assert_param(IS_SDIO_CLOCK_BYPASS(SDIO_InitStruct->SDIO_ClockBypass));
  assert_param(IS_SDIO_CLOCK_POWER_SAVE(SDIO_InitStruct->SDIO_ClockPowerSave));
  assert_param(IS_SDIO_BUS_WIDE(SDIO_InitStruct->SDIO_BusWide));
  assert_param(IS_SDIO_HARDWARE_FLOW_CONTROL(SDIO_InitStruct->SDIO_HardwareFlowControl));
  
/*---------------------------- SDIO CLKCR Configuration ------------------------*/ 
  /* Get the SDIO CLKCR value [取得SDIO CLKCR的值]*/
  tmpreg = SDIO->CLKCR;
 
  /* Clear CLKDIV, PWRSAV, BYPASS, WIDBUS, NEGEDGE, HWFC_EN bits [清CLKDIV, PWRSAV, BYPASS, WIDBUS, NEGEDGE, HWFC_EN位]*/
  tmpreg &= CLKCR_CLEAR_MASK;
 
  /* Set CLKDIV bits according to SDIO_ClockDiv value [依照SDIO_ClockDiv的值设置CLKDIV位]*/
  /* Set PWRSAV bit according to SDIO_ClockPowerSave value [依照SDIO_ClockPowerSave的值设置PWRSAV位]*/
  /* Set BYPASS bit according to SDIO_ClockBypass value [依照SDIO_ClockBypass的值设置BYPASS位]*/
  /* Set WIDBUS bits according to SDIO_BusWide value [依照SDIO_BusWide的值设置WIDBUS位]*/
  /* Set NEGEDGE bits according to SDIO_ClockEdge value [依照SDIO_ClockEdge的值设置NEGEDGE位]*/
  /* Set HWFC_EN bits according to SDIO_HardwareFlowControl value [依照SDIO_HardwareFlowControl的值设置HWFC_EN位]*/
  tmpreg |= (SDIO_InitStruct->SDIO_ClockDiv  | SDIO_InitStruct->SDIO_ClockPowerSave |
             SDIO_InitStruct->SDIO_ClockBypass | SDIO_InitStruct->SDIO_BusWide |
             SDIO_InitStruct->SDIO_ClockEdge | SDIO_InitStruct->SDIO_HardwareFlowControl);
 
  /* Write to SDIO CLKCR [写SDIO CLKCR]*/
  SDIO->CLKCR = tmpreg;            
}


/*******************************************************************************
* 函数名称: SDIO_StructInit
* 功能描述: Fills each SDIO_InitStruct member with its default value.[用默认值填充SDIO_InitStruct的每一个成员]
* 输入参数: SDIO_InitStruct: pointer to an SDIO_InitTypeDef structure which
*                  will be initialized.[指向将要被初始化的结构体SDIO_InitTypeDef的指针]
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct)
{
  /* SDIO_InitStruct members default value [SDIO_InitStruct成员的默认值]*/
  SDIO_InitStruct->SDIO_ClockDiv = 0x00;
  SDIO_InitStruct->SDIO_ClockEdge = SDIO_ClockEdge_Rising;
  SDIO_InitStruct->SDIO_ClockBypass = SDIO_ClockBypass_Disable;
  SDIO_InitStruct->SDIO_ClockPowerSave = SDIO_ClockPowerSave_Disable;
  SDIO_InitStruct->SDIO_BusWide = SDIO_BusWide_1b;
  SDIO_InitStruct->SDIO_HardwareFlowControl = SDIO_HardwareFlowControl_Disable;
}
完整的stm32f10x_sdio.c点击下载,终于完成了!几次都想放弃了,还是咬牙坚持下来了.

文章评论19条评论)

登录后参与讨论

用户377235 2014-2-11 02:42

下载了,英文不好,好不容易找到了中文版的,十分感谢

用户377235 2013-3-7 19:54

非常感谢小可歌

用户592336 2012-2-6 16:17

雪中送炭,非常感激

用户379758 2010-8-23 10:41

对我这样的初学者很有用。毕竟不是英语个个都好,非常感谢。

用户113131 2010-4-8 13:03

有必要翻译?

sunke9_998892717 2009-7-2 16:37

已经没有出打包的必要了,现在固件库已经升级到3.0了,并且OURAVR有人开始翻译了。

用户829600 2009-7-1 14:09

确实不容易,不过能否出个打包版的固件库呢.

用户203537 2009-1-29 10:27

多谢sunke9的翻译,并祝新年快乐。

用户1055968 2009-1-17 10:35

谢谢,好人一生平安

用户502047 2008-11-3 16:02

非常感谢
相关推荐阅读
小可歌 2016-05-31 13:54
【转帖】模拟电路的四重境界
无意中看到这个文章,虽然自己也搞了4 年模电了,但后看完之后发现自己原来根本就没有入门阿!现发上来和大家共享!·············   复旦攻读微电子专业模拟芯片设计方向研究生开始到...
小可歌 2016-05-28 07:14
发帖庆祝用app inventor的录音机保存MP3格式录音成功!
看似简单的功能,可是把我难够呛,刚学APP INVENTOR没几天,手里的两本书翻来掉去的看了N遍。APP INVENTOR的录音机默认是保存录音文件为3GP格式,我想保存成MP3文件就没有地方找...
小可歌 2016-02-22 08:56
C语言Printf格式,调试最好的助手!
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为...
小可歌 2016-02-19 15:19
对于SRAM的地址线和数据线是可以打乱顺序用的!!!!
因为SRAM的地址具有唯一性,其实数据线也有唯一性。 也就是A0~A18,D0~D15,都是唯一的。 正常是:A0~A18,接FSMC的A0~A18。 D0~D15,接FSMC的D0~D15. 假...
小可歌 2016-02-02 11:29
Linux系统下基本命令
Linux系统下基本命令: 要区分大小写  uname 显示版本信息(同win2K的 ver)  dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)  pwd...
小可歌 2016-02-02 11:28
DOS命令大全
对于一般的网民来说,dos命令是什么真的不知道,dos命令有些什么作用也不知道。但是黑客们却精通dos命令,经常利用dos命令进行各种任务,以达到自己的目的。下面笔者为大家汇总出dos命令大全,希...
我要评论
19
6
关闭 站长推荐上一条 /2 下一条