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

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

?? microsd.h

?? 按鍵是比較復雜。可以用狀態機表示。 每10mS執行一次鍵盤掃描任務 0、無鍵
?? H
字號:
/**
  ******************************************************************************
  * @file microsd.h
  * @brief This file contains functions prototypes.
  * @author STMicroelectronics - MCD Application Team
  * @version V1.1.0
  * @date 02/27/2009
  ******************************************************************************
  *
  * 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.
  *
  * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
  * @image html logo.bmp
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MICROSD_H
#define __MICROSD_H

/* Includes ------------------------------------------------------------------*/
#include "stm8s.h"

/* Private define ------------------------------------------------------------*/
/* Block Size */
#define BLOCK_SIZE ((u16)512)

/* Dummy byte */
#define DUMMY ((u8)0xFF)

/* MicroSD activation port & pin */
#define MSD_CS_PORT (GPIOE)
#define MSD_CS_PIN  (GPIO_PIN_5)

/* MSD detection on its memory slot */
#define MICROSD_PRESENT     ((u8)1)
#define MICROSD_NOT_PRESENT ((u8)0)

/* Start Data tokens  */
/* Tokens (necessary because at nop/idle (and CS active) only 0xff is on the data/command line) */
#define MSD_START_DATA_SINGLE_BLOCK_READ ((u8)0xFE)  /* Data token start byte, Start Single Block Read */
#define MSD_START_DATA_MULTIPLE_BLOCK_READ  ((u8)0xFE)  /* Data token start byte, Start Multiple Block Read */
#define MSD_START_DATA_SINGLE_BLOCK_WRITE ((u8)0xFE) /* Data token start byte, Start Single Block Write */
#define MSD_START_DATA_MULTIPLE_BLOCK_WRITE ((u8)0xFD)  /* Data token start byte, Start Multiple Block Write */
#define MSD_STOP_DATA_MULTIPLE_BLOCK_WRITE ((u8)0xFD)  /* Data toke stop byte, Stop Multiple Block Write */

/* MSD functions return */
#define MSD_SUCCESS       ((u8)0x00)
#define MSD_FAIL          ((u8)0xFF)

/* MSD reponses and error flags */
#define MSD_RESPONSE_NO_ERROR      ((u8)0x00)
#define MSD_IN_IDLE_STATE          ((u8)0x01)
#define MSD_ERASE_RESET            ((u8)0x02)
#define MSD_ILLEGAL_COMMAND        ((u8)0x04)
#define MSD_COM_CRC_ERROR          ((u8)0x08)
#define MSD_ERASE_SEQUENCE_ERROR   ((u8)0x10)
#define MSD_ADDRESS_ERROR          ((u8)0x20)
#define MSD_PARAMETER_ERROR        ((u8)0x40)
#define MSD_RESPONSE_FAILURE       ((u8)0xFF)

/* Data response error */
#define MSD_DATA_OK                ((u8)0x05)
#define MSD_DATA_CRC_ERROR         ((u8)0x0B)
#define MSD_DATA_WRITE_ERROR       ((u8)0x0D)
#define MSD_DATA_OTHER_ERROR       ((u8)0xFF)

/* Commands: CMDxx = CMD-number | 0x40 */
#define MSD_GO_IDLE_STATE          ((u8)0)   /* CMD0=0x40 */
#define MSD_SEND_OP_COND           ((u8)1)   /* CMD1=0x41 */
#define MSD_SEND_CSD               ((u8)9)   /* CMD9=0x49 */
#define MSD_SEND_CID               ((u8)10)  /* CMD10=0x4A */
#define MSD_STOP_TRANSMISSION      ((u8)12)  /* CMD12=0x4C */
#define MSD_SEND_STATUS            ((u8)13)  /* CMD13=0x4D */
#define MSD_SET_BLOCKLEN           ((u8)16)  /* CMD16=0x50 */
#define MSD_READ_SINGLE_BLOCK      ((u8)17)  /* CMD17=0x51 */
#define MSD_READ_MULTIPLE_BLOCK    ((u8)18)  /* CMD18=0x52 */
#define MSD_SET_BLOCK_COUNT        ((u8)23)  /* CMD23=0x57 */
#define MSD_WRITE_BLOCK            ((u8)24)  /* CMD24=0x58 */
#define MSD_WRITE_MULTIPLE_BLOCK   ((u8)25)  /* CMD25=0x59 */
#define MSD_PROGRAM_CSD            ((u8)27)  /* CMD27=0x5B */
#define MSD_SET_WRITE_PROT         ((u8)28)  /* CMD28=0x5C */
#define MSD_CLR_WRITE_PROT         ((u8)29)  /* CMD29=0x5D */
#define MSD_SEND_WRITE_PROT        ((u8)30)  /* CMD30=0x5E */
#define MSD_TAG_SECTOR_START       ((u8)32)  /* CMD32=0x60 */
#define MSD_TAG_SECTOR_END         ((u8)33)  /* CMD33=0x61 */
#define MSD_UNTAG_SECTOR           ((u8)34)  /* CMD34=0x62 */
#define MSD_TAG_ERASE_GROUP_START  ((u8)35)  /* CMD35=0x63 */
#define MSD_TAG_ERASE_GROUP_END    ((u8)36)  /* CMD36=0x64 */
#define MSD_UNTAG_ERASE_GROUP      ((u8)37)  /* CMD37=0x65 */
#define MSD_ERASE                  ((u8)38)  /* CMD38=0x66 */
#define MSD_READ_OCR               ((u8)39)  /* CMD39=0x67 */
#define MSD_CRC_ON_OFF             ((u8)40)  /* CMD40=0x68 */

/* Exported types ------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
typedef struct _MSD_CSD      /*Card Specific Data*/
{
  vu8  CSDStruct;            /* CSD structure */
  vu8  SysSpecVersion;       /* System specification version */
  vu8  Reserved1;            /* Reserved */
  vu8  TAAC;                 /* Data read access-time 1 */
  vu8  NSAC;                 /* Data read access-time 2 in CLK cycles */
  vu8  MaxBusClkFrec;        /* Max. bus clock frequency */
  vu16 CardComdClasses;      /* Card command classes */
  vu8  RdBlockLen;           /* Max. read data block length */
  vu8  PartBlockRead;        /* Partial blocks for read allowed */
  vu8  WrBlockMisalign;      /* Write block misalignment */
  vu8  RdBlockMisalign;      /* Read block misalignment */
  vu8  DSRImpl;              /* DSR implemented */
  vu8  Reserved2;            /* Reserved */
  vu16 DeviceSize;           /* Device Size */
  vu8  MaxRdCurrentVDDMin;   /* Max. read current @ VDD min */
  vu8  MaxRdCurrentVDDMax;   /* Max. read current @ VDD max */
  vu8  MaxWrCurrentVDDMin;   /* Max. write current @ VDD min */
  vu8  MaxWrCurrentVDDMax;   /* Max. write current @ VDD max */
  vu8  DeviceSizeMul;        /* Device size multiplier */
  vu8  EraseGrSize;          /* Erase group size */
  vu8  EraseGrMul;           /* Erase group size multiplier */
  vu8  WrProtectGrSize;      /* Write protect group size */
  vu8  WrProtectGrEnable;    /* Write protect group enable */
  vu8  ManDeflECC;           /* Manufacturer default ECC */
  vu8  WrSpeedFact;          /* Write speed factor */
  vu8  MaxWrBlockLen;        /* Max. write data block length */
  vu8  WriteBlockPaPartial;  /* Partial blocks for write allowed */
  vu8  Reserved3;            /* Reserded */
  vu8  ContentProtectAppli;  /* Content protection application */
  vu8  FileFormatGrouop;     /* File format group */
  vu8  CopyFlag;             /* Copy flag (OTP) */
  vu8  PermWrProtect;        /* Permanent write protection */
  vu8  TempWrProtect;        /* Temporary write protection */
  vu8  FileFormat;           /* File Format */
  vu8  ECC;                  /* ECC code */
  vu8  CRC;                  /* CRC */
  vu8  Reserved4;            /* always 1*/
}MSD_CSD;

typedef struct _MSD_CID      /*Card Identification Data*/
{
  vu8  ManufacturerID;       /* ManufacturerID */
  vu16 OEM_AppliID;          /* OEM/Application ID */
  vu32 ProdName1;            /* Product Name part1 */
  vu8  ProdName2;            /* Product Name part2*/
  vu8  ProdRev;              /* Product Revision */
  vu32 ProdSN;               /* Product Serial Number */
  vu8  Reserved1;            /* Reserved1 */
  vu16 ManufactDate;         /* Manufacturing Date */
  vu8  CRC;                  /* CRC */
  vu8  Reserved2;            /* always 1*/
}MSD_CID;

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */

/*----- High layer function -----*/
u8 MSD_Init(void);
u8 MSD_WriteBlock(u8* pBuffer, u32 WriteAddr, u16 NumByteToWrite);
u8 MSD_ReadBlock(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead);
u8 MSD_WriteBuffer(u8* pBuffer, u32 WriteAddr, u32 NumByteToWrite);
u8 MSD_ReadBuffer(u8* pBuffer, u32 ReadAddr, u32 NumByteToRead);

/*----- Medium layer function -----*/
void MSD_SendCmd(u8 Cmd, u32 Arg, u8 Crc);
u8 MSD_GetResponse(u8 Response);
u8 MSD_GetDataResponse(void);
u8 MSD_GoIdleState(void);
void MSD_ChipSelect(FunctionalState NewState);
u8 MSD_Detect(void);

/*----- Low layer function -----*/
void MSD_WriteByte(u8 byte);
u8 MSD_ReadByte(void);

#endif /* __MSD_H */

/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产不卡| 福利一区在线观看| 欧美年轻男男videosbes| 午夜国产精品影院在线观看| 欧美日韩精品一区二区| 久久精品久久综合| 精品国产三级a在线观看| 国产精品77777竹菊影视小说| 中文字幕不卡三区| 91成人网在线| 免费在线观看一区| 久久久亚洲精华液精华液精华液 | 日韩一区二区免费在线电影| 蜜桃久久精品一区二区| 精品国产91久久久久久久妲己 | 午夜精品久久久久久久| 欧美一区二区视频网站| 国产电影一区二区三区| 亚洲天堂成人网| 91精品黄色片免费大全| 国产激情精品久久久第一区二区| 综合欧美一区二区三区| 欧美剧情片在线观看| 精品一区二区三区在线播放| 中文字幕一区二区三中文字幕| 欧洲精品中文字幕| 国内精品伊人久久久久影院对白| 国产精品久久久久久久浪潮网站 | 一本色道久久综合亚洲91| 亚洲欧美激情小说另类| 欧美一区二区三区不卡| 99久久精品免费| 毛片基地黄久久久久久天堂| 国产精品久久久久久久久免费相片 | 91免费观看视频在线| 日日夜夜精品免费视频| 国产精品三级视频| 日韩视频123| 26uuu亚洲综合色欧美| 成人午夜电影小说| 久久精品久久精品| 亚洲成av人片一区二区三区| 欧美激情一区二区三区蜜桃视频| 欧美日韩激情一区二区| www.亚洲免费av| 久久99国产精品免费网站| 一区二区久久久| 国产欧美在线观看一区| 日韩一二在线观看| 91福利在线观看| 成人综合在线网站| 激情成人午夜视频| 日本欧美在线观看| 亚洲一区二区美女| 亚洲美女少妇撒尿| 国产精品女主播在线观看| 精品国产一区二区三区四区四| 欧美三级欧美一级| 色香蕉成人二区免费| 成人黄色一级视频| 国产在线精品国自产拍免费| 日日噜噜夜夜狠狠视频欧美人| 亚洲精品国产精华液| 亚洲欧洲精品一区二区精品久久久| 日韩精品在线看片z| 欧美一区二区三区在线观看| 欧美日本一区二区三区| 在线看日韩精品电影| 91首页免费视频| 99国产精品一区| www.亚洲色图| 91小视频在线| 日本韩国精品一区二区在线观看| 不卡的av中国片| 99re热这里只有精品视频| 成人妖精视频yjsp地址| 粉嫩av一区二区三区粉嫩| 国产成人综合自拍| 国产精品一区三区| 国产精品一级黄| 高清国产一区二区三区| 国产sm精品调教视频网站| 国产成人av自拍| 粉嫩av一区二区三区粉嫩 | av在线不卡免费看| 日韩欧美国产三级| 欧美大片免费久久精品三p| 日韩美女主播在线视频一区二区三区| 91精品国产综合久久久久久久 | 五月天久久比比资源色| 丝袜美腿亚洲一区二区图片| 五月婷婷激情综合网| 日本免费在线视频不卡一不卡二| 麻豆一区二区在线| 丁香激情综合五月| 一本色道久久综合亚洲aⅴ蜜桃| 91久久一区二区| 日韩一区二区三区在线观看| 26uuu色噜噜精品一区二区| 国产日韩v精品一区二区| 国产精品久线在线观看| 一区二区三区日韩精品视频| 天天综合色天天综合色h| 麻豆精品久久久| 成人性生交大片免费| 色天使久久综合网天天| 欧美一区二区三区婷婷月色| 久久久久97国产精华液好用吗| 国产精品麻豆网站| 亚洲成人精品一区| 国产毛片精品视频| 91久久奴性调教| 日韩美一区二区三区| 美女国产一区二区三区| 高清久久久久久| 欧美日韩免费一区二区三区| 精品久久人人做人人爱| 最新成人av在线| 青青草原综合久久大伊人精品优势| 国产成人综合网| 欧美日本一区二区三区| 亚洲国产精品精华液ab| 午夜久久久久久久久| 丁香啪啪综合成人亚洲小说 | 国产精品99久久久久久久vr | 日日嗨av一区二区三区四区| 国产成人免费视频一区| 欧美日本一区二区| 亚洲国产成人一区二区三区| 五月婷婷综合在线| 97se狠狠狠综合亚洲狠狠| 日韩亚洲欧美中文三级| 亚洲女同女同女同女同女同69| 毛片av一区二区三区| 99re66热这里只有精品3直播 | 日韩精品一区二区三区视频播放 | 亚洲一区二区三区影院| 国产精品正在播放| 欧美精品一二三四| 亚洲精品免费在线| 成人午夜电影小说| 欧美不卡一区二区三区四区| 一区二区三区欧美日韩| 成人免费的视频| 久久色在线视频| 免费观看日韩电影| 欧美精品第一页| 亚洲一区二区偷拍精品| 99精品桃花视频在线观看| 久久精品夜夜夜夜久久| 精品无人码麻豆乱码1区2区 | aaa亚洲精品| 国产日产欧产精品推荐色| 韩国av一区二区三区在线观看| 欧美人体做爰大胆视频| 亚洲影院久久精品| 日本黄色一区二区| 亚洲色图制服诱惑| 99久久精品一区二区| 中文字幕 久热精品 视频在线 | 欧美伦理电影网| 亚洲第一成人在线| 欧美影视一区二区三区| 亚洲黄色录像片| 在线观看网站黄不卡| 一区二区三区四区不卡在线 | 欧美成人高清电影在线| 青青草原综合久久大伊人精品优势| 欧美色区777第一页| 亚洲综合图片区| 欧美日韩视频在线第一区 | 麻豆精品一二三| 日韩三级视频中文字幕| 蜜桃视频在线一区| 精品国产91九色蝌蚪| 国内精品写真在线观看| 久久精品网站免费观看| 久久超碰97人人做人人爱| 久久只精品国产| 粉嫩高潮美女一区二区三区| 国产精品久久一卡二卡| 色屁屁一区二区| 亚洲午夜在线视频| 欧美日韩国产高清一区二区三区| 日精品一区二区| 精品福利一二区| 成人免费毛片app| 亚洲乱码日产精品bd| 欧美人xxxx| 激情综合色综合久久综合| 欧美国产日韩亚洲一区| 色哟哟在线观看一区二区三区| 亚洲夂夂婷婷色拍ww47| 777午夜精品视频在线播放| 激情五月婷婷综合网| 中文字幕免费不卡在线| 欧美丝袜自拍制服另类| 美国十次综合导航| 亚洲国产成人私人影院tom| 一本久久综合亚洲鲁鲁五月天 |