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

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

?? mx25l1602drv.c

?? LPC1114_例程和教程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:       MX25L1602.c
** Descriptions:    SST25VF016B驅動
**
**------------------------------------------------------------------------------------------------------
** Created by:      Litiantian
** Created date:    2007-04-16
** Version:         1.0
** Descriptions:    The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:     
** Modified date:   
** Version:         
** Descriptions:    
********************************************************************************************************/
#include   "MX25L1602Drv.h"

/*
 * 移植本軟件包時需要修改以下的函數或宏 
 */
#define     CE_Low()    LPC_GPIO0->DATA &= ~SPI_CS;   
#define     CE_High()   LPC_GPIO0->DATA |=  SPI_CS;

/*********************************************************************************************************
** 函數名稱:SPIInit
** 功能說明:初始化SPI
** 輸入參數:無
** 輸出參數:無
*********************************************************************************************************/
void  SSP_Init (void)
{  
    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 16);                           /* 配置IOCON模塊時鐘            */
    LPC_IOCON->PIO0_7 = 0x00;                                         /* 初始化SPI0引腳               */
    LPC_GPIO0->DIR    |= SPI_CS;

 //   LPC_IOCON->PIO0_6 |= 0x02;
 //   LPC_IOCON->PIO0_8 |= 0x01;
 //   LPC_IOCON->PIO0_9 |= 0x01;
 	LPC_IOCON->PIO0_8	=0x01;
	LPC_IOCON->PIO0_9	=0x01;
	LPC_IOCON->SWCLK_PIO0_10=0x02;	

    LPC_SYSCON->PRESETCTRL    |= 0x01;                                  /* 禁止SPI0復位                 */

    LPC_IOCON->SCK_LOC         = 0x00;                                  /* P0.10配置為SCK                */
    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 11);                             /* 打開SPI0外設                 */
    LPC_SYSCON->SSP0CLKDIV     = 0x01;                                  /* SSP時鐘分頻                  */
   
    LPC_SSP0->CR0 = (0x01 << 8) |                                       /* SCR  設置SPI時鐘分頻         */
                    (0x00 << 7) |                                       /* CPHA 時鐘輸出相位,           */
                                                                        /* 僅SPI模式有效                */
                    (0x00 << 6) |                                       /* CPOL 時鐘輸出極性,           */
                                                                        /* 僅SPI模式有效                */
                    (0x00 << 4) |                                       /* FRF  幀格式 00=SPI,01=SSI,   */
                                                                        /* 10=Microwire,11=保留         */
                    (0x07 << 0);                                        /* DSS  數據長度,0000-0010=保留,*/
                                                                        /* 0011=4位,0111=8位,1111=16位  */

    LPC_SSP0->CR1 = (0x00 << 3) |                                       /* SOD  從機輸出禁能,1=禁止     */
                    (0x00 << 2) |                                       /* MS   主從選擇,0=主機,1=從機  */
                    (0x01 << 1) |                                       /* SSE  SSP使能                 */
                    (0x00 << 0);                                        /* LBM  回寫模式                */
             
    LPC_SSP0->CPSR = 2;                                                 /* PCLK分頻值                   */
    LPC_SSP0->ICR  = 0x03;                                              /* 中斷清除寄存器               */
}

/*********************************************************************************************************
** 函數名稱: Send_Byte
** 函數功能:通過硬件SPI發送一個字節到MX25L1602
** 輸入參數: data
** 輸出參數: 無
** 返 回 值:無
*********************************************************************************************************/
void Send_Byte (INT8U data)
{
    LPC_SSP0->DR = data;
    while( (LPC_SSP0->SR & 0x10) == 0x10);                              /* 等待TFE置位,即發送FIFO空    */
    data = LPC_SSP0->DR;   
}

/*********************************************************************************************************
** 函數名稱:Get_Byte
** 函數功能:通過硬件SPI接口接收一個字節到處理器
** 輸入參數:無
** 輸出參數:無
*********************************************************************************************************/
INT8U Get_Byte (void)
{
    LPC_SSP0->DR = 0xFF;                                                /* 發送該數據用以產生時鐘       */
    while ( 0 == (LPC_SSP0->SR & 0x01));                                /* 等待數據發送完畢             */
   /*
    * 判斷當前是否空閑(是否處于TX Or RX)
    */
    while( LPC_SSP0->SR & (1 << 4));
   /*
   * 判斷是否已接收到數據,必須判斷是否接收完成,否則
    * 新的TX發送再次寫入LPC_SSP0->DR寄存器
    */
   while( LPC_SSP0->SR & (1 << 2) == 0x00); 
   return (INT8U)(LPC_SSP0->DR);                                        /* 返回接收到的數據             */
}

/*INT8U Get_Byte(void)
{
	LPC_SSP0->DR=0xff;
	while((LPC_SSP0->SR&0x10)!=0);
	return (INT8U)(LPC_SSP0->DR);
} 
*/
/*********************************************************************************************************
** 用戶接口層
** 以下函數在移植時無需修改
*********************************************************************************************************/
/********************************************************************************************************
** 函數名稱:MX25L1602_RD
** 函數功能:MX25L1602的讀函數,可選擇讀ID和讀數據操作
** 輸入參數:
**          INT32U Dst:目標地址,范圍 0x0 - MAX_ADDR(MAX_ADDR = 0x1FFFFF)
**          INT32U NByte:  要讀取的數據字節數
**          INT8U* RcvBufPt:接收緩存的指針
** 輸出參數:操作成功則返回OK,失敗則返回ERROR
** 特殊說明:若某功能下,某一入口參數無效,可在該入口參數處填Invalid,該參數將被忽略
**********************************************************************************************************/
INT8U MX25L1602_RD(INT32U Dst, INT32U NByte,INT8U* RcvBufPt)
{
  INT32U i = 0;
  if ((Dst+NByte > MAX_ADDR)||(NByte == 0))  return (ERROR);            /*  檢查入口參數                */
  
  CE_Low();
  Send_Byte(0x0B);                                                      /* 發送讀命令                   */
  Send_Byte(((Dst & 0xFFFFFF) >> 16));                                  /* 發送地址信息:該地址為3個字節 */
  Send_Byte(((Dst & 0xFFFF) >> 8));
  Send_Byte(Dst & 0xFF);
  Send_Byte(0xFF);                                                      /* 發送一個啞字節以讀取數據     */
  for (i = 0; i < NByte; i++) {
    RcvBufPt[i] = Get_Byte();
  }
  CE_High();
  return (OK);
}

/*********************************************************************************************************
** 函數名稱:MX25L1602_RdID
** 函數功能:MX25L1602的讀ID函數,可選擇讀ID和讀數據操作
** 輸入參數:
**          idtype IDType:ID類型。用戶可在Jedec_ID,Dev_ID,Manu_ID三者里選擇
**          INT32U* RcvbufPt:存儲ID變量的指針
** 輸出參數:操作成功則返回OK,失敗則返回ERROR
** 特殊說明:若填入的參數不符合要求,則返回ERROR
*********************************************************************************************************/
INT8U MX25L1602_RdID(idtype IDType, INT32U* RcvbufPt)
{
  INT32U temp = 0;
  if (IDType == Jedec_ID) {
    CE_Low();
    Send_Byte(0x9F);                                                    /* 發送讀JEDEC ID命令(9Fh)      */
    temp = (temp | Get_Byte()) << 8;                                    /* 接收數據                     */
    temp = (temp | Get_Byte()) << 8;
    temp = (temp | Get_Byte());                                         /* 在本例中,temp的值應為0xBF2541*/
    CE_High();
    *RcvbufPt = temp;
    return (OK);
  }

  if ((IDType == Manu_ID) || (IDType == Dev_ID) ) {
    CE_Low();
    Send_Byte(0x90);                                                    /* 發送讀ID命令 (90h or ABh)    */
    Send_Byte(0x00);                                                    /* 發送地址                     */
    Send_Byte(0x00);                                                    /* 發送地址                     */
    Send_Byte(IDType);                                                  /* 發送地址 - 不是00H就是01H    */
    temp = Get_Byte();                                                  /* 接收獲取的數據字節           */
    CE_High();
    *RcvbufPt = temp;
    return (OK);
  } else {
    return (ERROR);
  }
}

/*********************************************************************************************************
** 函數名稱:MX25L1602_WR
** 函數功能:MX25L1602的寫函數,可寫1個和多個數據到指定地址
** 輸入參數:
**          INT32U Dst:目標地址,范圍 0x0 - MAX_ADDR(MAX_ADDR = 0x1FFFFF)
**          INT8U* SndbufPt:發送緩存區指針
**          INT32U NByte:要寫的數據字節數
** 輸出參數:操作成功則返回OK,失敗則返回ERROR
** 特殊說明:若某功能下,某一入口參數無效,可在該入口參數處填Invalid,該參數將被忽略
*********************************************************************************************************/
INT8U MX25L1602_WR(INT32U Dst, INT8U* SndbufPt, INT32U NByte)
{
  INT32U temp = 0,i = 0,StatRgVal = 0;
  if (( (Dst+NByte-1 > MAX_ADDR)||(NByte == 0) )) {
    return (ERROR);                                                     /*  檢查入口參數                */
  }
  CE_Low();
  Send_Byte(0x05);                                                      /* 發送讀狀態寄存器命令         */
  temp = Get_Byte();                                                    /* 保存讀得的狀態寄存器值       */
  CE_High();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日日夜夜| 日韩欧美一区电影| 国产成人鲁色资源国产91色综 | 亚洲高清不卡在线观看| 国产日韩影视精品| 精品久久久久一区二区国产| 欧美自拍偷拍午夜视频| 91在线观看高清| 国产超碰在线一区| 国产一区免费电影| 国内精品伊人久久久久av影院| 五月天中文字幕一区二区| 亚洲欧美另类小说视频| 国产精品视频你懂的| 国产午夜精品一区二区三区嫩草| 日韩欧美亚洲另类制服综合在线| 欧美三电影在线| 欧美在线免费观看视频| 国产精品资源站在线| 国产一区二区三区av电影| 国内精品久久久久影院一蜜桃| 日韩成人午夜电影| 亚洲国产人成综合网站| 成人免费小视频| ...xxx性欧美| 一区二区激情小说| 婷婷亚洲久悠悠色悠在线播放| 午夜精品在线视频一区| 日韩福利视频导航| 国内精品视频666| 久久99久久久久久久久久久| 老司机午夜精品| 国产激情视频一区二区三区欧美| 成人黄色软件下载| 在线观看视频一区二区欧美日韩| 色狠狠一区二区| 欧美一区二区三区啪啪| 精品久久久久久综合日本欧美| 久久夜色精品一区| 亚洲图片激情小说| 亚洲成人av一区| 久久不见久久见免费视频1| 国产精品一区二区黑丝| 99久久久久久99| 欧美日本乱大交xxxxx| 日韩美女主播在线视频一区二区三区| 精品日韩一区二区三区免费视频| 日韩久久精品一区| 亚洲欧美另类图片小说| 久久机这里只有精品| 成人深夜福利app| 欧美猛男超大videosgay| 久久精品人人爽人人爽| 亚洲一区精品在线| 国内欧美视频一区二区| 色999日韩国产欧美一区二区| 欧美一区二区视频在线观看2020| 久久久久亚洲蜜桃| 午夜视黄欧洲亚洲| 成人一区二区三区视频在线观看| 欧美酷刑日本凌虐凌虐| 中文字幕日韩一区二区| 美女视频黄久久| 色婷婷综合激情| 国产人久久人人人人爽| 日韩电影免费在线| 91色乱码一区二区三区| www国产精品av| 亚洲成人激情综合网| 91在线观看下载| 久久久久亚洲蜜桃| 久久99国产精品成人| 欧美日韩视频第一区| 亚洲视频 欧洲视频| 国产成人自拍高清视频在线免费播放| 欧美性色综合网| 亚洲免费视频成人| 成人av先锋影音| 久久综合久色欧美综合狠狠| 亚洲1区2区3区视频| 色综合久久中文综合久久97| 欧美极品aⅴ影院| 国产成人精品免费看| 久久你懂得1024| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美一二三四区| 日韩av高清在线观看| 欧美亚洲综合网| av在线这里只有精品| 久久久午夜精品理论片中文字幕| 日本在线不卡视频一二三区| 欧美日韩一二三| 午夜精品福利久久久| 911国产精品| 日本欧美韩国一区三区| 欧美一卡二卡在线| 精品中文字幕一区二区| 欧美精品一区二区三区久久久| 蜜臀精品久久久久久蜜臀| 欧美精品一级二级三级| 日韩激情中文字幕| 日韩你懂的电影在线观看| 久久99热狠狠色一区二区| 精品国产欧美一区二区| 国产一区二区三区四区五区入口| 久久久亚洲欧洲日产国码αv| 国产69精品久久久久777| 亚洲欧洲日本在线| 日本精品一区二区三区高清| 亚洲成人av一区二区三区| 日韩免费在线观看| 成人va在线观看| 亚洲精品日韩专区silk| 欧美日本在线观看| 亚洲欧美日韩系列| 日韩一区二区三区电影在线观看| 亚洲精品成人精品456| 在线中文字幕不卡| 日韩和欧美一区二区三区| 国产亚洲精品bt天堂精选| 99久久夜色精品国产网站| 亚洲123区在线观看| 精品裸体舞一区二区三区| 成人视屏免费看| 日韩精品每日更新| 中文在线资源观看网站视频免费不卡| 91污在线观看| 免费在线观看一区二区三区| 久久精品男人天堂av| 一本大道久久a久久综合| 日本麻豆一区二区三区视频| 国产精品狼人久久影院观看方式| 欧美日韩亚洲丝袜制服| 国产宾馆实践打屁股91| 亚洲成av人影院| 国产婷婷色一区二区三区在线| 欧美偷拍一区二区| 成人一道本在线| 美女视频免费一区| 一区二区三区91| 久久久高清一区二区三区| 欧美男人的天堂一二区| 成人午夜短视频| 蜜桃av噜噜一区| 亚洲国产综合人成综合网站| 欧美激情一区不卡| 日韩精品中文字幕在线不卡尤物| 一本色道久久加勒比精品| 国产在线视视频有精品| 婷婷一区二区三区| 伊人色综合久久天天| 国产三级久久久| 精品国产髙清在线看国产毛片| 色老汉一区二区三区| 捆绑调教一区二区三区| 亚洲综合色丁香婷婷六月图片| 久久蜜臀中文字幕| 欧美成人在线直播| 日韩一区二区免费视频| 色国产综合视频| 色婷婷一区二区三区四区| 成人精品视频.| 国产69精品一区二区亚洲孕妇 | 成人免费一区二区三区视频 | 国产精品综合二区| 老司机免费视频一区二区三区| 亚洲va欧美va人人爽| 玉米视频成人免费看| 亚洲人妖av一区二区| 国产精品二三区| 中文字幕中文字幕一区二区| 国产亚洲精品aa午夜观看| 26uuu色噜噜精品一区| 欧美xxxx在线观看| 欧美一区二区精品| 欧美va亚洲va香蕉在线| 久久一区二区视频| 中文字幕不卡的av| 亚洲老妇xxxxxx| 亚洲第一狼人社区| 日韩av一二三| 国内精品视频666| 粉嫩av亚洲一区二区图片| 国产成a人亚洲精| 日韩av中文字幕一区二区| 久久99国产精品久久99| 风流少妇一区二区| 91蜜桃婷婷狠狠久久综合9色| 欧洲激情一区二区| 欧美精品第1页| 欧美国产1区2区| 一个色综合av| 蜜臀久久久99精品久久久久久| 黑人巨大精品欧美一区| 成人免费黄色在线| 欧美日韩精品一区二区三区四区 | 亚洲女人小视频在线观看| 久久伊人蜜桃av一区二区| 中文字幕av资源一区| 午夜欧美大尺度福利影院在线看|