wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

新唐M051 IIC使用程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年09月01日   【字體:
發一個新唐M051單片機的 IIC使用的程序:
#include "SmartM_M0.h"
#define DEBUGMSG printf
#define EEPROM_SLA              0xA0
#define EEPROM_WR               0x00
#define EEPROM_RD               0x01  
#define I2C_CLOCK               13   
#define PAGE_SIZE               8
/*****************************************
*函數名稱:Timed_Write_Cycle
*輸    入:無
*輸    出:無
*功    能:同步的寫周期
******************************************/
void Timed_Write_Cycle(void)                  
{
    while (I2STATUS != 0x18)
    {
        //啟動
        I2CON |= STA;                         
        I2CON |= SI;
        while ((I2CON & SI) != SI);
        I2CON &= ((~STA) & (~SI));   
  //設備地址
        I2DAT = EEPROM_SLA | EEPROM_WR;
        I2CON |= SI;
        while ((I2CON & SI) != SI);
    }       
    if (I2STATUS != 0x18)                       //檢查應答
    {
     DEBUGMSG("Not ACK returned!");
 }      
    //停止
    I2CON |= STO;
    I2CON |= SI;
    while (I2CON & STO);
}
/*****************************************
*函數名稱:I2CInit
*輸    入:無
*輸    出:無
*功    能:I2C初始化
******************************************/
VOID I2CInit(VOID)
{
    P3_PMD &= ~(Px4_PMD | Px5_PMD);
 P3_PMD |= (Px4_OD | Px5_OD);                //使能I2C0引腳 
    P3_MFP &= ~(P34_T0_I2CSDA | P35_T1_I2CSCL);
 P3_MFP |= (I2CSDA | I2CSCL);        //選擇P3.4,P3.5作為I2C0功能引腳      
 APBCLK |= I2C0_CLKEN;                       //使能I2C0時鐘
    I2CLK = I2C_CLOCK;                                           
 I2CON |= ENSI;                              //使能I2C
}
/*****************************************
*函數名稱:AT24C0XWrite
*輸    入:unAddr   寫地址
          pucData  寫數據
    unLength 寫長度
*輸    出:TRUE/FALSE
*功    能:AT24C0X寫數據
******************************************/
BOOL AT24C0XWrite(UINT32 unAddr,UINT8 *pucData,UINT32 unLength)
{
    UINT32 i;
    I2CON |= STA;              //啟動
    I2CON |= SI;                   
    while ((I2CON & SI) != SI);       
    I2CON &= ((~STA)&(~SI));            
    if (I2STATUS != 0x08)            
    {
        DEBUGMSG("I2CStart fail,I2STATUS %02X\r\n",I2STATUS);
  return FALSE;
    } 
    //進入讀寫控制操作
    I2DAT = EEPROM_SLA | EEPROM_WR;
    I2CON |= SI;
    while ((I2CON & SI) != SI);
    if (I2STATUS != 0x18)             
    {
     DEBUGMSG("I2C write control fail\r\n");       
     return FALSE;
    }
    //寫地址
    I2DAT = unAddr;
    I2CON |= SI;
    while ((I2CON & SI) != SI);
    if (I2STATUS != 0x28)             
    {
        DEBUGMSG("I2C write addr fail\r\n");
     return FALSE;
    } 
 //寫數據
 for(i=0; i<unLength; i++)
 {
     I2DAT = *(pucData+i);
     I2CON |= SI;
     while ((I2CON & SI) != SI);
     if (I2STATUS != 0x28)             
     {
         DEBUGMSG("I2C write data fail\r\n");
      return FALSE;
     } 
 } 
    //停止
    I2CON |= STO;
    I2CON |= SI;
    while (I2CON & STO);        
 //DEBUGMSG("I2C stop ok\r\n");
    Timed_Write_Cycle();                                      
 return TRUE;            
}
/*****************************************
*函數名稱:AT24C0XRead
*輸    入:unAddr   讀地址
          pucData  讀數據
    unLength 讀長度
*輸    出:TRUE/FALSE
*功    能:AT24C0X讀數據
******************************************/
BOOL AT24C0XRead(UINT32 unAddr,UINT8 *pucData,UINT32 unLength)
{
 UINT32 i;
    I2CON |= STA;                 //啟動
    I2CON |= SI;                      
    while ((I2CON & SI) != SI);        
    I2CON &= ((~STA)&(~SI));            
    if (I2STATUS != 0x08)            
    {
        DEBUGMSG("I2CStart fail,I2STATUS %02X\r\n",I2STATUS); 
  return FALSE;
    }
 //進入讀寫控制操作 
    I2DAT = EEPROM_SLA | EEPROM_WR;
    I2CON |= SI;
    while ((I2CON & SI) != SI);
    if (I2STATUS != 0x18)             
    {
     DEBUGMSG("I2C write control fail\r\n");      
     return FALSE;
    }
 //寫入讀地址
    I2DAT = unAddr;
    I2CON |= SI;
    while ((I2CON & SI) != SI);
    if (I2STATUS != 0x28)             
    {
        DEBUGMSG("I2C write addr fail\r\n");
     return FALSE;
    }  
    // 重新啟動
    I2CON |= STA;         
    I2CON |= SI;                                
    while ((I2CON & SI) != SI);                 
    I2CON &= ((~STA)&(~SI));    
    if (I2STATUS != 0x10)                       
    {
        DEBUGMSG("I2C repeated start fail\r\n");
  return FALSE;
    }
    //進入讀操作 
    I2DAT = EEPROM_SLA | EEPROM_RD;
    I2CON |= SI;
    while ((I2CON & SI) != SI);   
    if (I2STATUS != 0x40)             
    {
        DEBUGMSG("I2C write control fail\r\n");
        while (1);
    }
 //讀取數據
 I2CON |= AA;
 for(i=0; i<unLength; i++)
 {
     I2CON |= SI;
     while ((I2CON & SI) != SI);
     if (I2STATUS != 0x50)             
     {
         DEBUGMSG("I2C read fail\r\n");
         return FALSE;
     }
  *(pucData+i) = I2DAT; 
 }
    //發送NACK到AT24C02,執行斷開連接操作
    I2CON &= (~AA);
    I2CON |= SI;
    while ((I2CON & SI) != SI);
   //停止
    I2CON |= STO;
    I2CON |= SI;
    while (I2CON & STO);                     
 DEBUGMSG("I2C read ok\r\n");
 return TRUE;
}
VOID AT24C02ContinousWrite(UINT32 unAddr,UINT8 *pucData,UINT32 unLength)
{
    UINT32 i,m,n;
 UINT32 unCurWirteCount=0;
 //if(unLength <= 32)
 m = PAGE_SIZE-(unAddr % PAGE_SIZE);   //與當前每頁32個字節已剩下多少個字節
 if(unLength <= m)
 {
    AT24C0XWrite(unAddr,pucData,unLength);
 }
 else
 {
    AT24C0XWrite(unAddr,pucData,m);
    unLength -=m;
    unCurWirteCount+=m;
    m = unLength/PAGE_SIZE;
    n = unLength%PAGE_SIZE;
    for(i=0; i<m; i++)
    {
        AT24C0XWrite(unAddr+unCurWirteCount,pucData+unCurWirteCount,PAGE_SIZE);
     unCurWirteCount += PAGE_SIZE;
    }
    AT24C0XWrite(unAddr+unCurWirteCount,pucData+unCurWirteCount,n);   
 }  
}
/*****************************************
*函數名稱:main
*輸    入:無
*輸    出:無
*功    能:函數主體
******************************************/
INT32 main(VOID)
{
  UINT8 i,buf[32];
     Un_Lock_Reg();        //ISP下載時保護FLASH存儲器
  PWRCON |= XTL12M_EN;      //默認時鐘源為外部晶振
  while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz時鐘穩定  
  CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設置外部晶振為系統時鐘
  UartInit(12000000,9600);     //波特率設置為9600bps
  I2CInit(); 
  DEBUGMSG("I2C Test\r\n");
//  while(1)
//  {
     for(i=0; i<sizeof(buf); i++)   //初始化寫緩沖區
    {
        buf[i]=0x55;
    }
       DEBUGMSG("\r\nAT24C0XWrite Test\r\n");
    AT24C0XWrite(0,buf,sizeof(buf));  //執行寫操作
    Delayms(500);
    //==================================================
       DEBUGMSG("AT24C0XRead Test\r\n");
     for(i=0; i<sizeof(buf); i++)   //初始化讀緩沖區
    {
        buf[i]=0x00;
    } 
    AT24C0XRead(0,buf,sizeof(buf));    //執行讀操作
    for(i=0; i<10; i++)
    {
     DEBUGMSG("%02X ",buf[i]);     //打印讀取的數值  
    } 
    Delayms(500); 
//  }
 while(1);
}

 
關閉窗口
夜夜操 天天操| 好吊日精品视频| 一级毛片视频| 五月天婷婷激情网| 丰满的亚洲女人毛茸茸| 免费在线黄网站| 91精品久久久久久久久久久久久久| 欧美一级日韩一级| 亚洲天堂福利av| 蜜桃精品视频在线观看| 欧洲三级视频| 欧美高清你懂的| 国产精品剧情一区二区在线观看| av美女网站| 天天视频一区二区三区| 超碰中文字幕在线| 亚洲AV无码片久久精品| 99久久激情视频| 夜夜爽99久久国产综合精品女不卡 | 萌白酱国产一区二区| 欧美日韩性生活| 亚洲视频 欧洲视频| 国产精品原创巨作av| 狠色狠色综合久久| 午夜欧洲一区| 成人综合网站| jizz一区二区三区| 猫咪在线永久网站| 国产真实生活伦对白| 久久亚洲国产成人亚| 国产乱码精品一区二三区蜜臂| 少妇高潮一区二区三区喷水| 国产老头和老头xxxx×| 尤物av无码色av无码| 亚洲欧美日韩在线综合| 国内视频一区二区| 成人免费视频在线观看超级碰| 久久久久久久999精品视频| 亚洲欧美一区二区三区久久| 欧美一区二区视频网站| 在线观看中文字幕不卡| 亚洲午夜一区二区| 日韩一区日韩二区| 国产网站一区二区三区| 国产成人av在线影院| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲高清资源| 在线看片不卡| 国产精品久久久久久影院8一贰佰| 91国内精品| 欧州一区二区三区| 亚洲欧洲二区| 日韩毛片免费视频一级特黄| 欧美大片高清| 午夜不卡影院| 三级中文字幕在线观看| av影片在线| 19禁羞羞电影院在线观看| 高清全集视频免费在线| 久草免费在线| а√天堂官网中文在线| 女女色综合影院| 成视频免费观看在线看| sm国产在线调教视频| xvideos国产在线视频| 国产美女av在线| 羞羞网站在线看| 国产黄色大片在线观看| 都市激情久久综合| 97成人资源| 高清在线一区| 成人影院网站ww555久久精品| 怡红院成人在线| 久久电影天堂| 大型av综合网站| 国产va免费精品观看精品视频| 精品国产一级毛片| 一区二区蜜桃| 先锋影音久久久| 日韩—二三区免费观看av| 激情伊人五月天久久综合| 国产精品99久久不卡二区| 国产ts人妖一区二区| 91麻豆成人久久精品二区三区| 久久精品人人做| 一区二区三区在线影院| 狠狠躁夜夜躁人人爽超碰91| 欧美日韩视频在线一区二区| 亚洲а∨天堂久久精品9966| 亚洲欧洲第一视频| 欧美激情精品久久久久久| 日本久久久久久| 99国产在线| 亚洲一区精彩视频| 日本成年人网址| 亚洲美女精品视频| 男人av资源站| 亚洲性猛交富婆| 男人的天堂色| 黄瓜视频网站| 一级在线视频| 91超碰免费在线| 精品国产亚洲一区二区在线观看| 亚洲三级网址| 亚洲茄子视频| 成人精品免费网站| 亚洲小说欧美激情另类| 日韩精品在线网站| 精品少妇v888av| 91在线免费观看网站| 宅男av一区二区三区| 五月婷婷六月合| 粉嫩精品久久99综合一区| 人人爽人人爽人人片av| 性感美女一级片| 免费高清成人| av毛片在线| 中文在线综合| 午夜亚洲福利| 成人av在线资源网站| 五月婷婷欧美视频| 日韩精品极品在线观看| 欧美专区中文字幕| 日韩欧美第二区在线观看| 日本成人中文字幕在线| 少妇太紧太爽又黄又硬又爽小说| wwwwww在线观看| 国产综合精品久久| 深夜视频在线免费| 日韩高清不卡| 一本一道久久综合狠狠老| 成人小视频免费在线观看| 香蕉成人伊视频在线观看| 日韩精品在线观看网站| 国产精品极品在线| 青青在线免费视频| 白丝女仆被免费网站| 国产精品午夜一区二区| 自拍电影在线观看| 日本三级视频在线播放| 国产精品jk白丝蜜臀av小说| 久久国产福利| 亚洲欧美另类在线| 亚洲欧美视频在线| 国产厕所精品在线观看| 韩国日本美国免费毛片| 久久久久久久国产视频| 日韩不卡高清| 1024国产在线| 在线一级成人| 成人精品鲁一区一区二区| 在线免费av一区| 97成人精品视频在线观看| 欧美 另类 交| xxxxx99| 全国男人的天堂天堂网| 午夜在线观看91| 亚洲高清在线一区| 精品制服美女丁香| 欧美亚洲一区二区在线| 91成品人片a无限观看| 青青草视频国产| 国产又黄又粗又猛又爽的| av色男福利网| 成人在线观看免费| 国产亚洲一区| 国产日韩欧美精品一区| 精品视频在线观看日韩| av在线不卡一区| 久久久久亚洲av无码网站| 国产又黄又粗又硬| 成本人h片动漫网站在线观看| 伊人久久大香| 国产精品影音先锋| 精品国产一区二区三区不卡| 成人免费网站在线| 1314成人网| 精品黑人一区二区三区国语馆| 日本视频二区| 国产精品毛片久久久| 大陆成人av片| 日韩精品免费综合视频在线播放| 久久国产精品-国产精品| 亚洲三级在线视频| 一卡二卡三卡在线| 色吊丝在线永久观看最新版本| 欧美三级午夜理伦三级小说| 91麻豆123| www欧美日韩| 99久久国产综合精品五月天喷水| 99精品视频99| 黄色三级高清在线播放| 红杏aⅴ成人免费视频| 91一区一区三区| 日韩在线观看免费网站| www.激情网| 无码人妻精品一区二区三区不卡 | 在线免费av网址| 最新国产一区二区| 久久―日本道色综合久久| 最近2019年中文视频免费在线观看| 亚洲一区三区视频在线观看| 欧美三级免费看| 色婷婷亚洲十月十月色天| 亚洲成人黄色| 久久精品水蜜桃av综合天堂| 久久这里只有精品99| 久久久一本二本三本| 成人黄色免费网| 十九岁完整版在线观看好看云免费| 日韩欧美网站| 精品久久久久久中文字幕大豆网| 国产精品久久久久久婷婷天堂| 无套内谢丰满少妇中文字幕| 四虎电影网址| 福利一区二区免费视频| 久久综合色婷婷| 久久久久久美女| 久久出品必属精品| 精品网站www| 免费精品一区| 免费一级欧美在线大片| 国产在线观看一区二区| 亚洲无av在线中文字幕| 日本欧美黄色片| 国产绿帽一区二区三区| 青草视频在线免费直播| 人妖欧美一区二区| 亚洲精品第一页| 国产69精品久久久久999小说| 国产精品自拍电影| 国产在线xxx| 国产精品自拍三区| 欧美精品生活片| 青娱乐国产精品视频| 2021最新国产精品一区| 老牛精品亚洲成av人片| 亚洲国产欧美日韩另类综合| 国产精品成人观看视频免费| 欧美日韩大片在线观看| 久久白虎精品| 在线视频精品| 亚洲天堂网在线观看| 免费看污污网站| 九九精品视频在线观看九九| 大型av综合网站| 色哟哟一区二区在线观看| 色视频一区二区三区| 亚洲系列第一页| 亚洲精品一区| 中文一区一区三区高中清不卡| 国产精品自产拍在线观| 成年人av电影| 日本在线视频观看| 成人精品视频一区| 亚洲精品一区二区三区不卡| 日本高清视频免费在线观看| 久久精品偷拍视频| 午夜免费播放观看在线视频| 免费日韩视频| 色av中文字幕一区| 国产男女无遮挡猛进猛出| 你懂的视频在线观看资源| 欧美偷拍自拍| 欧美xxxx老人做受| 亚洲五月天综合| 九九爱免费视频在线观看| 女同性一区二区三区人了人一 | 日本特黄久久久高潮| 中文字幕av一区二区三区谷原希美| 国内精品国产三级国产aⅴ久| 天天操夜夜做| 一本色道久久综合一区| 日韩视频在线免费观看| free性中国hd国语露脸| 亚洲美女欧洲| 成人免费视频网站在线观看| 国产精品爽黄69| 少妇一级淫片免费放中国 | 欧美成人免费在线观看视频| 亚洲国产精品久久卡一| 亚洲精品国产精品粉嫩| 91毛片在线观看| 成人免费福利在线| 日批视频免费观看| 99视频有精品高清视频| 欧洲激情一区二区| 欧美日韩中文在线视频| 国内视频自拍在线视频| 国产一区导航| 91大神福利视频在线| 国产午夜精品一区二区理论影院 | 男男成人高潮片免费网站| 欧美人与性动交a欧美精品| 婷婷综合在线视频| 欧美色图天堂| 亚洲免费观看高清完整版在线观看熊| 黄色一区三区| 2018中文字幕在线观看| 88国产精品视频一区二区三区| 亚洲精品短视频| 日韩片在线观看| 日韩大胆视频| 久久精品人人做人人爽人人| 久久久久久一区| 男人女人靠逼视频| 欧美三级网页| 国外成人性视频| 国产精品sss| 亚洲精品视频专区| 91欧美大片| 久久国产精品影视| 黄色激情视频在线观看| 亚洲成人不卡| 欧美久久久久免费| 午夜影院免费版| 米奇精品一区二区三区| 亚洲午夜精品17c| 在线看的黄色网址| 男人的天堂在线视频| 亚洲欧洲精品天堂一级| 成年人午夜免费视频| 四虎永久在线| 国产精品久久久久久妇女6080| 日本阿v视频在线观看| 啊啊啊射了视频网站| 久久影音资源网| 黄色网在线视频| 国产超碰在线观看| 亚洲人成网站影音先锋播放| 日韩国产欧美亚洲| 一级在线免费观看| 亚洲精品videosex极品| 五月婷婷狠狠操| 日本三级在线视频| 欧美唯美清纯偷拍| 在线免费看黄视频| 国产成人久久精品麻豆二区| 亚洲国产欧美精品| 欧美精品videos极品| 成人偷拍自拍| 欧美高清第一页| 国产suv精品一区二区69| 欧美日韩理论| 91超碰在线电影| seba5欧美综合另类| 国产一区二区三区免费观看| 亚洲欧美成人一区| 美乳中文字幕| 一区二区三区波多野结衣在线观看| 国产视频一区二区视频| 九七久久人人| 日韩午夜在线播放| 久久久久97国产| 精品国产网站| 成人av电影天堂| 久久精品国产麻豆| 成人午夜视频在线| 欧美激情 国产精品| 黄网在线观看| 欧美性做爰猛烈叫床潮| 国产7777777| 欧洲亚洲一区二区三区| 日本高清视频精品| 久久精品国产麻豆| 国产亚洲精品aa午夜观看| 日本免费观看网站| av成人福利| 中文日韩在线视频| www.久久色| 精品一区二区三区免费观看| 8x8x华人在线| 777电影在线观看| 日韩免费性生活视频播放| 日本在线视频免费| 中文在线日韩| 欧美一区二区三区电影在线观看| 亚洲精品少妇久久久久久 | 国产成人精品综合网站| 久久噜噜亚洲综合| 色婷婷狠狠18| 国产精品扒开腿做爽爽爽视频软件| 亚洲成av人片在线观看香蕉| 国产欧美日韩另类| 欧美日韩国产探花| 日本一区二区久久精品| 天堂a√中文在线| 5566中文字幕一区二区电影| 久久无码精品丰满人妻| 欧美二区视频| 亚洲一区二区三区午夜| av电影在线播放高清免费观看| 日韩一级在线观看| 国产精品成人久久久| 免费人成精品欧美精品| 国产午夜伦鲁鲁| 欧美xx视频| 日产精品久久久一区二区福利| 美女大黄三级视频在线观看| 亚洲地区一二三色|