最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

ARM2214的I2C接at24c1024問題????

作者:andreas168 欄目:ARM技術(shù)
ARM2214的I2C接AT24C1024.html">AT24C1024問題????
我以前購買的是EASYARM2104的開發(fā)板,上面有I2C接24C02的代碼,但我現(xiàn)在的項(xiàng)目中要使用AT24C1024,必須在讀寫時寫入16位的數(shù)據(jù)地址,我對
void  __irq  IRQ_I2C(void) 這段代碼理解不夠,所以不知道如何修改,請各位大俠幫忙。謝謝。  QQ:359473028。



/****************************************************************************
* File:I2CINT.C
* 功能:使用硬件I2C對E2PROM進(jìn)行操作,利用中斷方式操作。
* 說明:將跳線器JP8_LED1、JP12短接。
****************************************************************************/
#include  "config.h"

#define   CSI24WC02 0xA0            /* 定義器件地址 */

#define      LED1CON    0x00000400        /* P0.10引腳控制LED1,低電平點(diǎn)亮 */


/* 以下為I2C操作時所需要的變量,在調(diào)用I2C子程序前要設(shè)置好這些變量 */
volatile  uint8  I2C_sla;           // 從機(jī)地址
volatile  uint8  I2C_suba;          // 子地址
volatile  uint8  *I2C_buf;          // 數(shù)據(jù)緩沖區(qū)指針 (讀操作時會被更改)
volatile  uint8  I2C_num;           // 操作數(shù)據(jù)個數(shù) (會被更改)
volatile  uint8  I2C_end;           // 操作結(jié)束標(biāo)志,為1時表示操作結(jié)束,為0xFF時表示操作失敗 (會被設(shè)置)
volatile  uint8  I2C_suba_en;       // 子地址使能控制,讀操作時請設(shè)置為1,寫操作時請設(shè)置為2 (會被更改)



/****************************************************************************
* 名稱:IRQ_I2C()
* 功能:I2C中斷,通過判斷I2C狀態(tài)字進(jìn)行相應(yīng)的操作。
* 入口參數(shù):無
* 出口參數(shù):無
****************************************************************************/
void  __irq  IRQ_I2C(void)
{  uint8  sta;

   sta = I2STAT;                    // 讀出I2C狀態(tài)字
   SWITCH(sta)
   {  case  0x08:                   // 己發(fā)送起始條件
            if(1==I2C_suba_en) I2DAT = I2C_sla&0xFE;    // 指定子地址讀時,先寫入地址
              else I2DAT = I2C_sla;                     // 否則直接發(fā)送從機(jī)地址
            I2CONCLR = 0x28;        // SI=0
            break;
            
      case  0x10:
            I2DAT = I2C_sla;        // 重啟動總線后,發(fā)送從地址
            I2CONCLR = 0x28;        // SI=0
            break;
   
      case  0x18:                   // 已發(fā)送SLA+W,并已接收應(yīng)答
            if(0==I2C_suba_en)      // 無子地址,則直接發(fā)送數(shù)據(jù)
            {  if(I2C_num>0)
               {  I2DAT = *I2C_buf++;
                  I2CONCLR = 0x28;
                  I2C_num--;
               }
               else
               {  I2CONSET = 0x10;  // 無數(shù)據(jù)發(fā)送,結(jié)束總線
                  I2CONCLR = 0x28;
                  I2C_end = 1;      // 設(shè)置總線操作結(jié)束標(biāo)志
               }
               break;
            }
            if(1==I2C_suba_en)      // 發(fā)送子地址
            {  I2DAT = I2C_suba;
               I2CONCLR = 0x28;
            }
            if(2==I2C_suba_en)
            {  I2DAT = I2C_suba;
               I2CONCLR = 0x28;
               I2C_suba_en = 0;     // 子地址己處理
            }
            break;
            
      case  0x28:                   // 已發(fā)送I2C數(shù)據(jù),并接收到應(yīng)答
            if(0==I2C_suba_en)      // 無子地址,則直接發(fā)送數(shù)據(jù)
            {  if(I2C_num>0)
               {  I2DAT = *I2C_buf++;
                  I2CONCLR = 0x28;
                  I2C_num--;
               }
               else
               {  I2CONSET = 0x10;  // 無數(shù)據(jù)發(fā)送,結(jié)束總線
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
LPC2210開發(fā)板的SPI1做從機(jī)中斷方式接收數(shù)據(jù)的問題
請問zlg網(wǎng)站那里有ucos-II在lpc系列arm上的移植代碼下載
設(shè)計與選型的疑惑
SmartARM2200上的LCM_Disp程序修改后運(yùn)行問題
求助magicARM2200用的芯片是2290中relinchip燒寫后就無法燒寫了
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號