亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stm32f10x_sdio.c

?? LCD液晶顯示驅動,芯片為ST7565,
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name          : stm32f10x_sdio.c
* Author             : MCD Application Team
* Version            : V2.0.2
* Date               : 07/11/2008
* Description        : This file provides all the SDIO firmware functions.
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_sdio.h"
#include "stm32f10x_rcc.h"

/* Private typedef -----------------------------------------------------------*/
/* ------------ SDIO registers bit address in the alias region ----------- */
#define SDIO_OFFSET                (SDIO_BASE - PERIPH_BASE)

/* --- CLKCR Register ---*/
/* Alias word address of CLKEN bit */
#define CLKCR_OFFSET              (SDIO_OFFSET + 0x04)
#define CLKEN_BitNumber           0x08
#define CLKCR_CLKEN_BB            (PERIPH_BB_BASE + (CLKCR_OFFSET * 32) + (CLKEN_BitNumber * 4))

/* --- CMD Register ---*/
/* Alias word address of SDIOSUSPEND bit */
#define CMD_OFFSET                (SDIO_OFFSET + 0x0C)
#define SDIOSUSPEND_BitNumber     0x0B
#define CMD_SDIOSUSPEND_BB        (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (SDIOSUSPEND_BitNumber * 4))

/* Alias word address of ENCMDCOMPL bit */
#define ENCMDCOMPL_BitNumber      0x0C
#define CMD_ENCMDCOMPL_BB         (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ENCMDCOMPL_BitNumber * 4))

/* Alias word address of NIEN bit */
#define NIEN_BitNumber            0x0D
#define CMD_NIEN_BB               (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (NIEN_BitNumber * 4))

/* Alias word address of ATACMD bit */
#define ATACMD_BitNumber          0x0E
#define CMD_ATACMD_BB             (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ATACMD_BitNumber * 4))

/* --- DCTRL Register ---*/
/* Alias word address of DMAEN bit */
#define DCTRL_OFFSET              (SDIO_OFFSET + 0x2C)
#define DMAEN_BitNumber           0x03
#define DCTRL_DMAEN_BB            (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (DMAEN_BitNumber * 4))

/* Alias word address of RWSTART bit */
#define RWSTART_BitNumber         0x08
#define DCTRL_RWSTART_BB          (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTART_BitNumber * 4))

/* Alias word address of RWSTOP bit */
#define RWSTOP_BitNumber          0x09
#define DCTRL_RWSTOP_BB           (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTOP_BitNumber * 4))

/* Alias word address of RWMOD bit */
#define RWMOD_BitNumber           0x0A
#define DCTRL_RWMOD_BB            (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWMOD_BitNumber * 4))

/* Alias word address of SDIOEN bit */
#define SDIOEN_BitNumber          0x0B
#define DCTRL_SDIOEN_BB           (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (SDIOEN_BitNumber * 4))


/* ---------------------- SDIO registers bit mask ------------------------ */
/* --- CLKCR Register ---*/
/* CLKCR register clear mask */
#define CLKCR_CLEAR_MASK         ((u32)0xFFFF8100) 

/* --- PWRCTRL Register ---*/
/* SDIO PWRCTRL Mask */
#define PWR_PWRCTRL_MASK         ((u32)0xFFFFFFFC)

/* --- DCTRL Register ---*/
/* SDIO DCTRL Clear Mask */
#define DCTRL_CLEAR_MASK         ((u32)0xFFFFFF08)

/* --- CMD Register ---*/
/* CMD Register clear mask */
#define CMD_CLEAR_MASK           ((u32)0xFFFFF800)

/* SDIO RESP Registers Address */
#define SDIO_RESP_ADDR           ((u32)(SDIO_BASE + 0x14))

/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name  : SDIO_DeInit
* Description    : Deinitializes the SDIO peripheral registers to their default
*                  reset values.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
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;
}

/*******************************************************************************
* Function Name  : SDIO_Init
* Description    : Initializes the SDIO peripheral according to the specified 
*                  parameters in the SDIO_InitStruct.
* Input          : SDIO_InitStruct : pointer to a SDIO_InitTypeDef structure 
*                  that contains the configuration information for the SDIO 
*                  peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
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 */
  tmpreg = SDIO->CLKCR;
  
  /* Clear CLKDIV, PWRSAV, BYPASS, WIDBUS, NEGEDGE, HWFC_EN bits */
  tmpreg &= CLKCR_CLEAR_MASK;
  
  /* Set CLKDIV bits according to SDIO_ClockDiv value */
  /* Set PWRSAV bit according to SDIO_ClockPowerSave value */
  /* Set BYPASS bit according to SDIO_ClockBypass value */
  /* Set WIDBUS bits according to SDIO_BusWide value */
  /* Set NEGEDGE bits according to SDIO_ClockEdge value */
  /* Set HWFC_EN bits according to SDIO_HardwareFlowControl value */
  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 = tmpreg;             
}

/*******************************************************************************
* Function Name  : SDIO_StructInit
* Description    : Fills each SDIO_InitStruct member with its default value.
* Input          : SDIO_InitStruct: pointer to an SDIO_InitTypeDef structure which 
*                  will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct)
{
  /* SDIO_InitStruct members default value */
  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;
}

/*******************************************************************************
* Function Name  : SDIO_ClockCmd
* Description    : Enables or disables the SDIO Clock.
* Input          : NewState: new state of the SDIO Clock.
*                  This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void SDIO_ClockCmd(FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  
  *(vu32 *) CLKCR_CLKEN_BB = (u32)NewState;
}

/*******************************************************************************
* Function Name  : SDIO_SetPowerState
* Description    : Sets the power status of the controller.
* Input          : SDIO_PowerState: new state of the Power state. 
*                  This parameter can be one of the following values:
*                   - SDIO_PowerState_OFF
*                   - SDIO_PowerState_ON
* Output         : None
* Return         : None
*******************************************************************************/
void SDIO_SetPowerState(u32 SDIO_PowerState)
{
  /* Check the parameters */
  assert_param(IS_SDIO_POWER_STATE(SDIO_PowerState));
  
  SDIO->POWER &= PWR_PWRCTRL_MASK;
  SDIO->POWER |= SDIO_PowerState;
}

/*******************************************************************************
* Function Name  : SDIO_GetPowerState
* Description    : Gets the power status of the controller.
* Input          : None
* Output         : None
* Return         : Power status of the controller. The returned value can
*                  be one of the following:
*                       - 0x00: Power OFF
*                       - 0x02: Power UP
*                       - 0x03: Power ON 
*******************************************************************************/
u32 SDIO_GetPowerState(void)
{
  return (SDIO->POWER & (~PWR_PWRCTRL_MASK));
}

/*******************************************************************************
* Function Name  : SDIO_ITConfig
* Description    : Enables or disables the SDIO interrupts.
* Input          : - SDIO_IT: specifies the SDIO interrupt sources to be 
*                    enabled or disabled.
*                    This parameter can be one or a combination of the following
*                    values:
*                      - SDIO_IT_CCRCFAIL: Command response received (CRC check
*                                          failed) interrupt    
*                      - SDIO_IT_DCRCFAIL: Data block sent/received (CRC check 
*                                          failed) interrupt    
*                      - SDIO_IT_CTIMEOUT: Command response timeout interrupt    
*                      - SDIO_IT_DTIMEOUT: Data timeout interrupt    
*                      - SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt    
*                      - SDIO_IT_RXOVERR:  Received FIFO overrun error interrupt     
*                      - SDIO_IT_CMDREND:  Command response received (CRC check 
*                                          passed) interrupt     
*                      - SDIO_IT_CMDSENT:  Command sent (no response required) 
*                                          interrupt     
*                      - SDIO_IT_DATAEND:  Data end (data counter, SDIDCOUNT, is 
*                                          zero) interrupt     
*                      - 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    
*                      - 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    
*                      - SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt   
*                      - SDIO_IT_TXFIFOF:  Transmit FIFO full interrupt     
*                      - SDIO_IT_RXFIFOF:  Receive FIFO full interrupt     
*                      - SDIO_IT_TXFIFOE:  Transmit FIFO empty interrupt      
*                      - SDIO_IT_RXFIFOE:  Receive FIFO empty interrupt     
*                      - SDIO_IT_TXDAVL:   Data available in transmit FIFO interrupt      
*                      - SDIO_IT_RXDAVL:   Data available in receive FIFO interrupt      
*                      - SDIO_IT_SDIOIT:   SD I/O interrupt received interrupt      
*                      - SDIO_IT_CEATAEND: CE-ATA command completion signal 
*                                          received for CMD61 interrupt
*                  - NewState: new state of the specified SDIO interrupts.
*                  This parameter can be: ENABLE or DISABLE.  
* Output         : None
* Return         : None 
*******************************************************************************/
void SDIO_ITConfig(u32 SDIO_IT, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_SDIO_IT(SDIO_IT));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女www一区二区| 91高清视频在线| 91丝袜国产在线播放| 欧美男人的天堂一二区| 中文一区二区在线观看| 日本va欧美va瓶| 91福利国产精品| 欧美国产在线观看| 久久99国内精品| 欧美丰满少妇xxxxx高潮对白| 中文字幕亚洲精品在线观看 | 九九九精品视频| 欧美自拍丝袜亚洲| 欧美高清在线一区二区| 久久99国产精品成人| 欧美精品久久99久久在免费线| 亚洲色欲色欲www| 国精产品一区一区三区mba视频 | 亚洲二区在线视频| www.色综合.com| 国产精品欧美久久久久无广告| 久久国产福利国产秒拍| 欧美一二三四区在线| 五月婷婷综合在线| 欧美日韩国产另类一区| 亚洲午夜一二三区视频| 欧美在线啊v一区| 悠悠色在线精品| 不卡一区二区三区四区| 国产精品久久99| 99精品一区二区三区| 中文字幕av一区二区三区高 | 国产成人在线视频播放| 精品免费日韩av| 久久不见久久见免费视频7 | 91麻豆精品国产91久久久更新时间| 一区二区三区电影在线播| 一本一道波多野结衣一区二区 | 久久久精品一品道一区| 国产老女人精品毛片久久| 国产欧美一区视频| 91在线免费视频观看| 亚洲精品欧美在线| 欧美日韩国产综合久久| 日韩成人av影视| 精品国产精品一区二区夜夜嗨| 激情综合亚洲精品| 亚洲国产精品精华液2区45| 成人av网站在线观看| 亚洲色大成网站www久久九九| 日本精品视频一区二区| 亚洲一卡二卡三卡四卡无卡久久 | 91在线精品一区二区| 亚洲自拍偷拍av| 日韩小视频在线观看专区| 国产一区二区三区国产| 欧美国产亚洲另类动漫| 91成人在线观看喷潮| 蜜臀久久99精品久久久久久9| 国产三级欧美三级日产三级99| 99久久免费精品高清特色大片| 亚洲一区精品在线| 亚洲精品在线观| 色综合天天性综合| 另类成人小视频在线| 国产精品对白交换视频 | 色婷婷精品大在线视频| 日韩中文字幕91| 国产调教视频一区| 欧美午夜不卡视频| 国产成人在线网站| 日韩精品1区2区3区| 欧美极品aⅴ影院| 6080午夜不卡| 91香蕉国产在线观看软件| 日韩主播视频在线| 亚洲欧洲精品一区二区精品久久久 | 制服视频三区第一页精品| 国产91丝袜在线18| 蜜桃精品在线观看| 亚洲精品ww久久久久久p站| 精品国产免费一区二区三区四区| 色哟哟国产精品| 国产成人亚洲精品狼色在线 | 亚洲色图欧洲色图婷婷| 精品剧情在线观看| 欧美日韩精品系列| 91亚洲资源网| 欧美性大战久久久久久久| 成人午夜视频在线观看| 日韩成人一级片| 亚洲午夜精品网| 国产精品乱人伦| 久久久久久麻豆| 欧美大黄免费观看| 欧美人牲a欧美精品| 色综合天天综合网国产成人综合天| 国产精品资源网站| 精品一区二区综合| 日本va欧美va欧美va精品| 天天综合色天天综合色h| 亚洲同性gay激情无套| 欧美国产日韩一二三区| 久久久久国产成人精品亚洲午夜| 精品免费一区二区三区| 精品区一区二区| 26uuu色噜噜精品一区二区| 日韩一区二区三| 欧美精品自拍偷拍| 欧美精品在线视频| 91麻豆精品国产91久久久使用方法 | 国产精品久久久久久久久久免费看 | 日本欧美一区二区三区乱码| 亚洲国产一区二区三区青草影视| 综合久久国产九一剧情麻豆| 亚洲婷婷综合色高清在线| 亚洲欧美区自拍先锋| 一区二区三区毛片| 亚洲电影一级片| 日韩av网站免费在线| 毛片不卡一区二区| 韩日av一区二区| 国产成人a级片| av动漫一区二区| 欧洲一区在线电影| 欧美一区中文字幕| 欧美精品一区二区三区高清aⅴ | 日韩电影免费在线看| 久久国产精品露脸对白| 国产综合一区二区| 成人av第一页| 欧美亚洲禁片免费| 日韩一区二区视频在线观看| 久久久久久黄色| 国产精品白丝在线| 亚洲国产另类av| 精品一区二区三区香蕉蜜桃| 国产成人免费xxxxxxxx| 一本色道a无线码一区v| 欧美精品久久99久久在免费线| 久久久久亚洲综合| 一区二区日韩av| 老司机免费视频一区二区三区| 国产ts人妖一区二区| 在线观看91精品国产入口| 日韩免费一区二区| 亚洲欧洲www| 欧美a级一区二区| 成人精品视频网站| 欧美日韩国产高清一区二区三区 | 欧美日韩一区二区在线视频| 欧美一级免费大片| 国产精品乱人伦| 麻豆久久久久久| 91蝌蚪porny| 精品少妇一区二区三区日产乱码 | 国产精品全国免费观看高清| 亚洲精品成人在线| 懂色一区二区三区免费观看| 欧美日韩大陆一区二区| 国产日韩av一区二区| 五月天视频一区| 91视频com| 国产欧美精品一区二区三区四区| 亚洲一区二区成人在线观看| 成人国产精品免费| 欧美电视剧免费观看| 亚洲一区在线观看免费| 成人毛片视频在线观看| 精品国产一区二区三区忘忧草 | 欧美高清视频一二三区| 国产精品午夜电影| 美女在线视频一区| 91国产免费观看| 中文字幕一区二区三| 国产精品一区专区| 欧美电影免费观看高清完整版| 亚洲一区二区三区小说| 99视频在线精品| 欧美高清在线精品一区| 国产激情一区二区三区| 欧美第一区第二区| 蜜乳av一区二区三区| 欧美日韩小视频| 亚洲午夜久久久久久久久久久 | 亚洲综合丁香婷婷六月香| 波多野结衣一区二区三区 | 久久久久久久久久久久电影| 日本不卡的三区四区五区| 欧美日韩精品三区| 午夜精品久久久久久久99水蜜桃| 91麻豆6部合集magnet| 亚洲欧美成aⅴ人在线观看| av网站免费线看精品| 欧美激情在线免费观看| 国产v综合v亚洲欧| 中文字幕一区在线| 色婷婷一区二区三区四区| 亚洲精品国产无天堂网2021| 91蜜桃在线免费视频|