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

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

?? sdhal.c

?? 實現sd卡的讀寫
?? C
字號:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			sdhal.c
** Last modified Date:	2005-1-6
** Last Version:		V1.0
** Descriptions:		sd 卡驅動軟件包: 硬件抽象層 ---- SPI操作函數
**						Soft Packet of SD Card Driver: hard abstrast layer ---- function of SPI operation
**
**------------------------------------------------------------------------------------------------------
** Created by:			Ming Yuan Zheng
** Created date:		2005-1-6
** Version:				V1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:			
** Modified date:		
** Version:				
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Modified by: 
** Modified date:
** Version:	
** Descriptions: 
**
********************************************************************************************************/

#include "config.h"
#include "sdconfig.h"
#include "sdhal.h"

	/**************************************************************
		
		讀寫SD卡的SPI接口函數: SPI接口設置,發送/接收字節函數	
	
	**************************************************************/

/*******************************************************************************************************************
** 函數名稱: void SD_Power()					Name:	  void SD_Power()
** 功能描述: 對卡先下電,再上電					Function: turn off the card's power, and turn on
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
//void SD_Power(void)
//{
//	INT32U i;

	//SD_POWER_GPIO();
	//SD_POWER_OUT();
	//SD_POWER_OFF();								/* 關閉 SD 卡電源  turn off power of sd card */
	
	//SPI_SCK_GPIO();	
	//SPI_SCK_OUT();
	//SPI_SCK_CLR();								/* SCK  引腳置低   set SCK to zero */
	
	//SPI_MISO_GPIO();
	//SPI_MISO_OUT();
	//SPI_MISO_CLR();								/* MISO 引腳置低   set MISO to zero */
	
	//SPI_MOSI_GPIO();		
	//SPI_MOSI_OUT();
	//SPI_MOSI_CLR();								/* MOSI 引腳置低   set MOSI to zero */
	
	//SPI_CS_GPIO();								
   	//SPI_CS_OUT();								
	//SPI_CS_CLR();								/* CS 引腳置低	   set CS to zero */
		
	//for(i = 0; i < 0x9000; i++);				/* 關閉電源延時    delay after turn off power of sd card */
	//SD_POWER_ON();								/* 打開 SD 卡電源  turn on power of sd card */
//}

/*******************************************************************************************************************
** 函數名稱: void SD_HardWareInit()				Name:	  void SD_HardWareInit()
** 功能描述: 初始化訪問SD卡的硬件條件			Function: initialize the hardware condiction that access sd card
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SD_HardWareInit(void)
{ 
	//SD_Power();									/* 對卡先下電,再上電  turn off power of card, and turn on it */
	
	SPI_INIT();									/* 初始化SPI接口      initialize SPI interface */	
	
	//SD_INSERT_GPIO();
	//SD_INSERT_IN();								/* 檢測卡完全插入口為輸入口   the port checking card is input */
	
	//SD_WP_GPIO();								
	//SD_WP_IN();									/* 寫保護檢測口為輸入口  	  the port written protect is input */	
		   
   	//SPI_CS_SET();								/* CS置高	  				  set CS to high voltage */

 	SPI_Clk400k();								/* 設置SPI頻率小于等于400kHZ  set frequency of SPI below 400kHZ */
   
// 	SPI_SPCR = (0x01 << 4) + (0x01 << 5);		/* 設置SPI接口模式,MSTR = 1,CPOL = 1,CPHA = 0,LSBF=0 */
}												/* configure SPI interface */


/*******************************************************************************************************************
** 函數名稱: void SPI_Clk400k()					Name:	  void SPI_Clk400k()
** 功能描述: 設置SPI的時鐘小于400kHZ			Function: set the clock of SPI less than 400kHZ
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SPI_Clk400k(void)
{
	MCI_CLOCK = MCI_CLOCK | 0xFF;    						/* 設置SPI時鐘分頻值為128  Set the value of dividing frequency to 128 */
}


/*******************************************************************************************************************
** 函數名稱: void SPI_ClkToMax()				Name:	  void SPI_ClkToMax()
** 功能描述: 設置SPI的clock到最大值				Function: set the clock of SPI to maximum
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SPI_ClkToMax(void)
{
	MCI_CLOCK = (MCI_CLOCK & 0xFF00) | 0x08;								/* 設置SPI時鐘分頻值為8  Set the value of dividing frequency to 8 */
}


/*******************************************************************************************************************
** 函數名稱: void SPI_SendByte()				Name:	  void SPI_SendByte()
** 功能描述: 通過SPI接口發送一個字節			Function: send a byte by SPI interface
** 輸   入: INT8U byte: 發送的字節				Input:	  INT8U byte: the byte that will be send
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SPI_SendByte(INT8U byte)
{
	INT8U temp;

//	MCI_FIFO = byte;							/* 發送數據放入SPI數據寄存器 */
   
//	while(0 == (SPI_SPSR & 0x80));				/* 等待SPIF置位,即等待數據發送完畢 */
												/* wait for SPIF being set, that is, wait for finishing of data being send */
// 	temp = SPI_SPDR;
}


/*******************************************************************************************************************
** 函數名稱: INT8U SPI_RecByte()				Name:	  INT8U SPI_RecByte()
** 功能描述: 從SPI接口接收一個字節				Function: receive a byte from SPI interface
** 輸   入: 無									Input:	  NULL
** 輸   出: 收到的字節							Output:	  the byte that be received
********************************************************************************************************************/
INT8U SPI_RecByte(void)
{
//	SPI_SPDR = 0xFF;
   
// 	while(0 == (SPI_SPSR & 0x80));				/* 等待SPIF置位,即等待收到數據 */
												/* wait for SPIF being set, that is, wait for being received data */
//	return(SPI_SPDR); 							/* 讀取收到的字節 read the byte received */
}


/*******************************************************************************************************************
** 函數名稱: void SPI_CS_Assert()				Name:	  void SPI_CS_Assert()
** 功能描述: 片選SPI從機						Function: select the SPI slave 
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SPI_CS_Assert(void)
{
	//SPI_CS_CLR();			   					/* 片選SPI從機  select the SPI slave */  
}


/*******************************************************************************************************************
** 函數名稱: void SPI_CS_Deassert()				Name:	  void SPI_CS_Deassert()
** 功能描述: 不片選SPI從機						Function: not select the SPI slave 
** 輸   入: 無									Input:	  NULL
** 輸   出: 無									Output:	  NULL
********************************************************************************************************************/
void SPI_CS_Deassert(void)
{
	//SPI_CS_SET();			    				/* 不片選SPI從機  not select the SPI slave */
}

/*******************************************************************************************************************
** 函數名稱: void SD_ChkCard()					Name:	  void SD_ChkCard()
** 功能描述: 檢測卡是否完全插入					Function: check weather card is insert entirely
** 輸   入: 無									Input:	  NULL
** 輸   出: 1: 卡完全插入	0: 卡沒有完全插入   Output:	  1: insert entirely	0: not insert entirely
********************************************************************************************************************/
INT8U SD_ChkCard(void)
{
	/*if (SD_INSERT_STATUS() != 0)
		return 0;								/* 未完全插入 not insert entirely 
	else
		return 1;								/* 完全插入 insert entirely */
}

/*******************************************************************************************************************
** 函數名稱: void SD_ChkCardWP()				Name:	  void SD_ChkCardWP()
** 功能描述: 檢測卡寫保護						Function: check weather card is write protect
** 輸   入: 無									Input:	  NULL
** 輸   出: 1: 卡已寫保護	0: 卡未寫保護	    Output:	  1: insert write protect	0: not write protect
********************************************************************************************************************/
INT8U SD_ChkCardWP(void)
{
	/*if (SD_WP_STATUS() != 0)
		return 1;								/* 卡寫保護 
	else
		return 0;								/* 卡未寫保護*/ 
}








?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲精品一区二区三区 | 欧美一级片免费看| 精品国产欧美一区二区| 亚洲永久精品国产| 激情久久五月天| 777欧美精品| 一区二区三区视频在线看| 国产精品正在播放| 91精品国产入口在线| 亚洲一区二区三区国产| 成人久久久精品乱码一区二区三区 | 国产成人欧美日韩在线电影| 欧美日韩国产欧美日美国产精品| 久久久久国产精品麻豆| 精品一区二区av| 337p亚洲精品色噜噜狠狠| 亚洲国产日韩在线一区模特| 91麻豆精品视频| 综合电影一区二区三区| 成人黄动漫网站免费app| 久久久久久久久久电影| 精品午夜一区二区三区在线观看| 在线播放中文一区| 午夜精品免费在线| 欧美日韩国产综合久久 | 欧美激情一区二区在线| 国产一区二区在线视频| 欧美xxxxxxxx| 久草精品在线观看| 精品免费国产二区三区| 久99久精品视频免费观看| 日韩三级精品电影久久久| 五月婷婷色综合| 欧美一区二区视频在线观看| 毛片av中文字幕一区二区| 日韩欧美一级在线播放| 久久爱www久久做| 国产亚洲综合性久久久影院| 国产盗摄女厕一区二区三区| 国产精品久久免费看| caoporn国产一区二区| 亚洲黄色性网站| 欧美伊人久久大香线蕉综合69 | 国产成人午夜精品影院观看视频| 久久精品免费在线观看| 成人app在线观看| 亚洲一级在线观看| 欧美一区二区三区免费大片| 精品一区二区三区视频在线观看| 2020国产精品久久精品美国| 国产一区二区毛片| 中文字幕一区二区三| 欧美日韩日日摸| 国模少妇一区二区三区| 亚洲欧美日韩国产综合| 91精品国产美女浴室洗澡无遮挡| 久久99精品一区二区三区三区| 国产婷婷色一区二区三区| 在线精品亚洲一区二区不卡| 午夜亚洲福利老司机| 久久免费看少妇高潮| 91一区二区在线| 久久er精品视频| 亚洲精品国产高清久久伦理二区| 51精品国自产在线| 国产成人亚洲综合a∨婷婷图片| 亚洲黄色在线视频| 久久免费午夜影院| 欧美日韩免费一区二区三区 | 国产精品国产三级国产aⅴ入口 | 久久久美女毛片| 在线视频观看一区| 国产永久精品大片wwwapp| 一卡二卡欧美日韩| 久久久久高清精品| 91 com成人网| 91小视频在线观看| 精品一区免费av| 亚洲国产成人tv| 国产精品久久久久影院亚瑟 | 国产尤物一区二区| 亚洲国产另类av| 国产精品嫩草99a| 日韩一级片网址| 欧美性大战久久久久久久蜜臀 | 91精品国产高清一区二区三区 | 国产精品免费视频一区| 日韩欧美资源站| 91久久精品一区二区三| 粉嫩av一区二区三区| 久久爱另类一区二区小说| 亚洲午夜精品久久久久久久久| 久久久久久久久久看片| 日韩一区二区视频| 欧美探花视频资源| 在线免费观看成人短视频| 成人av电影在线网| 国产xxx精品视频大全| 精品一区二区免费视频| 五月天中文字幕一区二区| 亚洲精品免费一二三区| 国产精品情趣视频| 久久九九久精品国产免费直播| 欧美一区二区三区思思人| 欧美性做爰猛烈叫床潮| 日本黄色一区二区| 色屁屁一区二区| 色婷婷综合久久| 99re这里只有精品6| 不卡免费追剧大全电视剧网站| 国产一区二区三区免费播放| 久草热8精品视频在线观看| 免费看欧美女人艹b| 日本va欧美va欧美va精品| 天天色天天操综合| 国产九九视频一区二区三区| 久久国产精品99精品国产| 美美哒免费高清在线观看视频一区二区| 日韩福利视频网| 麻豆高清免费国产一区| 久久91精品国产91久久小草| 韩国精品在线观看| 成人av午夜影院| 在线观看视频一区二区| 欧美精品在线观看一区二区| 日韩一区二区麻豆国产| 久久日韩精品一区二区五区| 国产精品无码永久免费888| 1区2区3区欧美| 亚洲亚洲人成综合网络| 免费高清不卡av| 极品少妇xxxx精品少妇偷拍| 成人在线综合网站| 在线精品视频免费播放| 欧美一区中文字幕| 久久久久久久久久久久久夜| 亚洲人一二三区| 日韩精品成人一区二区在线| 国产综合色精品一区二区三区| 成人永久aaa| 555夜色666亚洲国产免| 久久久精品影视| 亚洲综合一区二区三区| 免费观看日韩av| 97久久精品人人做人人爽50路| 欧美精品aⅴ在线视频| 久久嫩草精品久久久精品一| 一区二区三区中文免费| 蓝色福利精品导航| 91麻豆免费观看| 久久久午夜电影| 亚洲一卡二卡三卡四卡无卡久久| 国产一区二三区| 欧美日韩亚洲综合| 欧美经典三级视频一区二区三区| 亚洲国产毛片aaaaa无费看| 国产美女视频一区| 欧美日韩国产成人在线免费| 久久久一区二区| 日韩影视精彩在线| 97精品电影院| www日韩大片| 午夜精品免费在线观看| av资源网一区| 国产亚洲短视频| 免费看日韩精品| 精品视频一区三区九区| 国产精品麻豆网站| 狠狠色丁香婷婷综合| 欧美日韩不卡在线| 亚洲婷婷综合色高清在线| 国产在线精品不卡| 666欧美在线视频| 伊人婷婷欧美激情| 国产sm精品调教视频网站| 日韩欧美成人激情| 亚洲成人av资源| 91黄色免费观看| 中文字幕一区二区三区蜜月 | 免费视频一区二区| 欧美影视一区二区三区| 亚洲精品第一国产综合野| 国产91精品在线观看| www亚洲一区| 国产一区二区免费视频| 日韩精品一区二区三区在线| 日韩成人一级大片| 欧美精品在线观看播放| 性久久久久久久| 欧美午夜精品久久久久久超碰| 亚洲激情自拍偷拍| 一本一道综合狠狠老| 亚洲另类春色校园小说| 91在线国产福利| 亚洲另类在线制服丝袜| 在线观看国产一区二区| 亚洲一区精品在线| 欧美男生操女生| 秋霞午夜鲁丝一区二区老狼| 欧美刺激脚交jootjob|