哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AS32X601的I2C模塊操作EEPROM詳解

安芯 ? 來源:jf_29981791 ? 作者:jf_29981791 ? 2025-12-21 21:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

國科安芯推出的AS32X601系列MCU芯片內(nèi)置的I2C模塊提供了符合工業(yè)標(biāo)準(zhǔn)的兩線串行制接口,可用于MCU和外部I2C設(shè)備的通訊。I2C總線使用兩條串行線:串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL。 I2C接口模塊實(shí)現(xiàn)了I2C協(xié)議的標(biāo)準(zhǔn)模式和快速模式,支持多主機(jī)I2C總線架構(gòu)。其標(biāo)準(zhǔn)模式為100K,快速模式400K。而EEPROM,作為一種支持字節(jié)級單獨(dú)擦寫、數(shù)據(jù)掉電不丟失的存儲器,其存儲容量(從幾字節(jié)到數(shù)百千字節(jié))恰好滿足了大量嵌入式應(yīng)用對中小規(guī)模非易失性數(shù)據(jù)存儲的需求。將EEPROM與并行地址/數(shù)據(jù)總線相連的傳統(tǒng)方式會占用大量I/O口,在引腳資源緊張的微控制器(如眾多8位、32位MCU)上顯得笨重且不經(jīng)濟(jì),因此,AS32X601系列開發(fā)板搭載了一塊24C02 eeprom。本文旨在系統(tǒng)闡述I2C EEPROM的工作原理與核心操作流程。內(nèi)容將涵蓋I2C通信的基本框架,EEPROM的器件尋址方式,以及針對字節(jié)寫入等關(guān)鍵流程

一、硬件設(shè)計(jì)

二、I2C時(shí)序

①Start開始信號、Stop停止信號:

這兩個信號由主機(jī)產(chǎn)生,不屬于數(shù)據(jù)域交互:

在SCL的高電平時(shí),主機(jī)將SDA的電平由 高–>低是Start信號(下降沿);

在SCL的高電平時(shí),主機(jī)將SDA的電平由 低–>高是Stop信號(上升沿);

②7位尋址

AS32X601的I2C只支持7位尋址模式,配置過程中從機(jī)地址需要左移1位才為實(shí)際地址。

③數(shù)據(jù)方向

0寫/1讀

④應(yīng)答ACK、非應(yīng)答NACK

在SCL的一個時(shí)鐘周期內(nèi),從機(jī)在SCL的高電平時(shí),將SDA的電平由高拉低(或者繼續(xù)保持低電平狀態(tài)) 則是ACK信號;

從機(jī)在SCL的高電平時(shí),如果SDA的電平一直是 高電平 則是NACK信號;

三、時(shí)鐘

I2C0、I2C1時(shí)鐘來自APB0,I2C2、I2C3時(shí)鐘來自ABP1。具體配置可見I2C_CTLR寄存器

四、I2C初始化

1.配置I2Cx需要的GPIO為復(fù)用功能。

2.通過配置I2C_INITSTRUCT初始化I2Cx,包括時(shí)鐘分頻,從機(jī)地址,ACK,高低電平時(shí)間等

3.按需求配置中斷,并配置IRQ_HANDLER;

4.調(diào)用收發(fā)接口,并處理數(shù)據(jù)

五、如何操作EEPROM

5.1按字節(jié)寫入函數(shù)

FlagStatus I2C_MEEPROMWriteByte(I2C_TypeDef* I2Cx, uint8_t addr, uint16_t reg, uint16_t data, uint32_t timeout)

{

unsigned int num;

/ 等待總線釋放 /

while (!I2C_CheckStatus(I2Cx, I2C_BUS_IDLE))

{

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

if ((timeout--) == 0)

{

return RESET;

}

delay_ms(1);

}

I2C_GenerateStart(I2Cx);

/ 等待啟動信號完成 /

while (!I2C_CheckStatus(I2Cx, MASTER_START_READY))

{

if ((timeout--) == 0)

{

return RESET;

}

delay_ms(1);

}

I2C_Send7bitAddress(I2Cx, addr, I2C_WRITE);

I2C_StartClear(I2Cx);

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成地址并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_WADDR_ACK))

{

if ((timeout--) == RESET)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_SendData(I2Cx, (uint8_t)(reg >> 0));

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成數(shù)據(jù)并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_DATA_ACK))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_SendData(I2Cx, data);

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成數(shù)據(jù)并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_DATA_ACK))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return 1;

}

代碼執(zhí)行流程詳細(xì)解釋如下:

等待總線空閑:函數(shù)首先進(jìn)入一個循環(huán),反復(fù)檢查I2C總線是否處于空閑(I2C_BUS_IDLE)狀態(tài)。如果總線被占用(忙狀態(tài)),它會嘗試通過調(diào)用I2C_StartClear和I2C_GenerateStop來清除可能的異常狀態(tài)并發(fā)送停止信號,試圖釋放總線。每次循環(huán)都會遞減超時(shí)計(jì)數(shù)器timeout并延遲1毫秒。如果timeout減到0,函數(shù)會返回RESET。這個步驟確保了本次傳輸開始時(shí)總線是可用的。

發(fā)起起始條件:確認(rèn)總線空閑后,函數(shù)調(diào)用I2C_GenerateStart在I2C總線上產(chǎn)生一個起始條件(Start Condition),這標(biāo)志著一次傳輸序列的開始。

等待起始條件完成:緊接著,函數(shù)進(jìn)入另一個循環(huán),等待起始條件成功發(fā)出的狀態(tài)(MASTER_START_READY)。同樣,這里也有超時(shí)檢查和1ms延遲,防止程序死鎖。超時(shí)則返回失敗。

發(fā)送從機(jī)地址(寫模式):起始條件成功后,函數(shù)調(diào)用I2C_Send7bitAddress,將參數(shù)addr(EEPROM的7位設(shè)備地址)和寫操作位(I2C_WRITE,通常值為0)組合成一個8位字節(jié)發(fā)送出去。隨后清除相關(guān)狀態(tài)和中斷標(biāo)志。

等待從機(jī)地址應(yīng)答:函數(shù)循環(huán)等待從設(shè)備(EEPROM)對收到地址的應(yīng)答信號(MSEND_WADDR_ACK)。如果EEPROM存在于總線上并識別出自己的地址,它會拉低SDA線作為應(yīng)答(ACK)。函數(shù)檢測到這個狀態(tài)才能繼續(xù)。此處有一個代碼瑕疵:超時(shí)判斷寫成了(timeout--) == RESET,雖然RESET很可能定義為0,但不如其他地方的== 0直觀統(tǒng)一。超時(shí)或失敗會發(fā)送停止條件并返回失敗。

發(fā)送EEPROM內(nèi)部存儲地址(存在嚴(yán)重錯誤):地址應(yīng)答后,函數(shù)準(zhǔn)備發(fā)送要寫入的EEPROM內(nèi)部單元地址reg。這是一個關(guān)鍵錯誤。對于16位地址的EEPROM(如reg是uint16_t),需要發(fā)送兩個字節(jié):先發(fā)送高8位,再發(fā)送低8位。但代碼中I2C_SendData(I2Cx, (uint8_t)(reg >> 0))的reg >> 0等于reg本身,所以它只發(fā)送了reg的低8位,完全遺漏了高8位。這會導(dǎo)致寫入到錯誤的EEPROM位置。

等待內(nèi)部地址字節(jié)應(yīng)答:發(fā)送(不完整的)地址字節(jié)后,循環(huán)等待EEPROM對此數(shù)據(jù)字節(jié)的應(yīng)答(MSEND_DATA_ACK)。有超時(shí)處理。

發(fā)送要寫入的數(shù)據(jù):收到地址字節(jié)應(yīng)答后,調(diào)用I2C_SendData(I2Cx, data)發(fā)送數(shù)據(jù)。這里有一個潛在問題:參數(shù)data是uint16_t類型,但函數(shù)被命名為WriteByte,且I2C_SendData通常發(fā)送一個字節(jié)。這里發(fā)生了隱式截?cái)?,只有data的低8位被發(fā)送出去。函數(shù)意圖和參數(shù)類型不匹配。

等待數(shù)據(jù)字節(jié)應(yīng)答:再次循環(huán)等待EEPROM對收到數(shù)據(jù)字節(jié)的應(yīng)答。有超時(shí)處理。

結(jié)束傳輸:數(shù)據(jù)成功發(fā)送并得到應(yīng)答后,函數(shù)調(diào)用I2C_GenerateStop產(chǎn)生停止條件(Stop Condition),結(jié)束本次I2C通信。然后清除中斷標(biāo)志。

5.2讀函數(shù)

FlagStatus I2C_MEEPROMRead(I2C_TypeDef* I2Cx, uint8_t addr, uint16_t reg, uint8_t* pData, uint32_t Size, uint32_t timeout)

{

uint32_t num = 0x00;

/ 等待總線釋放 /

while (!I2C_CheckStatus(I2Cx, I2C_BUS_IDLE))

{

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

if ((timeout--) == 0)

{

return RESET;

}

delay_ms(1);

}

I2C_AcknowledgeConfig(I2Cx, I2C_IICAA_ACK);

I2C_GenerateStart(I2Cx);

/ 等待啟動信號完成 /

while (!I2C_CheckStatus(I2Cx, MASTER_START_READY))

{

if ((timeout--) == 0)

{

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_Send7bitAddress(I2Cx, addr, I2C_WRITE);

I2C_StartClear(I2Cx);

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成地址并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_WADDR_ACK))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_SendData(I2Cx, (uint8_t)(reg >> 8));

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成數(shù)據(jù)并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_DATA_ACK))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return 0;

}

delay_ms(1);

}

I2C_SendData(I2Cx, (uint8_t)(reg >> 0));

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成數(shù)據(jù)并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_DATA_ACK))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_GenerateStart(I2Cx);

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成數(shù)據(jù)并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MASTER_START_REPEAT))

{

if ((timeout--) == 0)

{

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

I2C_Send7bitAddress(I2Cx, addr, I2C_READ);

I2C_ClearITPendingBit(I2Cx);

/ 等待從機(jī)接收完成地址并發(fā)送ack /

while (!I2C_CheckStatus(I2Cx, MSEND_RADDR_ACK))

{

if ((timeout--) == 0)

{

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

for (num = 0; num < Size; num++)

{

if (num == (Size - 1))

{

/* IIC sends NACK */

I2C_AcknowledgeConfig(I2Cx, I2C_IICAA_NACK);

}

else

{

I2C_AcknowledgeConfig(I2Cx, I2C_IICAA_ACK);

}

I2C_StartClear(I2Cx);

I2C_ClearITPendingBit(I2Cx);

/* Wait for the slave to send the completed data, and the host will send an ack */

while (!(I2C_CheckStatus(I2Cx, MREAD_DATA_ACK) || I2C_CheckStatus(I2Cx, MREAD_DATA_NACK)))

{

if ((Timeout--) == 0)

{

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return RESET;

}

delay_ms(1);

}

*pData++ = I2C_ReceiveData(I2Cx);

}

I2C_StartClear(I2Cx);

I2C_GenerateStop(I2Cx);

I2C_ClearITPendingBit(I2Cx);

return SET;

}

代碼執(zhí)行流程詳細(xì)解釋如下:

函數(shù)參數(shù)說明:

I2Cx: I2C外設(shè)指針

addr: EEPROM設(shè)備地址(7位)

reg: EEPROM內(nèi)部起始地址(16位)

pData: 指向接收數(shù)據(jù)緩沖區(qū)的指針

Size: 要讀取的字節(jié)數(shù)

timeout: 超時(shí)計(jì)數(shù)值(注意:函數(shù)內(nèi)部有一處拼寫錯誤寫成了Timeout)

代碼執(zhí)行流程詳細(xì)解釋:

等待總線空閑 :函數(shù)首先檢查I2C總線是否空閑(I2C_BUS_IDLE)。如果總線忙,執(zhí)行清理操作(I2C_StartClear)并發(fā)送停止信號(I2C_GenerateStop),嘗試釋放總線。每次循環(huán)都遞減超時(shí)計(jì)數(shù)器并延遲1ms,超時(shí)則返回RESET。

配置應(yīng)答 :調(diào)用I2C_AcknowledgeConfig(I2Cx, I2C_IICAA_ACK)使能主設(shè)備的數(shù)據(jù)應(yīng)答功能,這是為后續(xù)接收數(shù)據(jù)做準(zhǔn)備。

發(fā)起起始條件 :生成起始條件(I2C_GenerateStart)開始傳輸,并等待起始條件成功(MASTER_START_READY)。超時(shí)則清理總線并返回失敗。

發(fā)送設(shè)備地址(寫模式) :發(fā)送EEPROM的7位地址和寫方向位(I2C_WRITE),因?yàn)镋EPROM讀取操作需要先發(fā)送要讀取的內(nèi)部地址,這相當(dāng)于一個"偽寫"操作。清除相關(guān)狀態(tài)后,等待EEPROM應(yīng)答地址(MSEND_WADDR_ACK)。

發(fā)送重復(fù)起始條件 :為了從寫操作切換到讀操作,需要發(fā)送一個重復(fù)起始條件(Repeated Start)。調(diào)用I2C_GenerateStart,然后等待重復(fù)起始條件完成(MASTER_START_REPEAT)。這是I2C協(xié)議中在不釋放總線的情況下改變數(shù)據(jù)傳輸方向的標(biāo)準(zhǔn)做法。

發(fā)送設(shè)備地址(讀模式) :再次發(fā)送EEPROM的7位地址,但這次帶讀方向位(I2C_READ)。等待EEPROM對此讀地址的應(yīng)答(MSEND_RADDR_ACK)。

循環(huán)接收數(shù)據(jù) :這是函數(shù)的核心部分,循環(huán)接收Size個字節(jié)的數(shù)據(jù):

在接收倒數(shù)第二個字節(jié)時(shí)(num == (Size - 1)),將主設(shè)備的應(yīng)答配置為不應(yīng)答(I2C_IICAA_NACK),這是I2C協(xié)議規(guī)定的:主設(shè)備在接收最后一個字節(jié)前發(fā)送不應(yīng)答信號,通知從設(shè)備停止發(fā)送。

對于其他字節(jié),使能應(yīng)答(I2C_IICAA_ACK)。

等待從設(shè)備發(fā)送數(shù)據(jù)完成的狀態(tài)(MREAD_DATA_ACK或MREAD_DATA_NACK)。這里使用了邏輯或||,表示等待任意一種接收完成狀態(tài)。

從I2C數(shù)據(jù)寄存器讀取數(shù)據(jù)(I2C_ReceiveData(I2Cx))并存儲到pData指向的緩沖區(qū),然后指針遞增。

結(jié)束傳輸 :所有數(shù)據(jù)接收完成后,生成停止條件(I2C_GenerateStop)結(jié)束本次I2C通信,清除相關(guān)狀態(tài)。

六、下板驗(yàn)證

我們操作I2C寫入0~0x3f數(shù)據(jù),結(jié)果如下:

操作波形如圖:

讀取完最后一個數(shù)據(jù)后發(fā)送NACK:

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    19094

    瀏覽量

    402736
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1146

    瀏覽量

    86294
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1562

    瀏覽量

    131649
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RA MCU眾測寶典 | I2C讀取EEPROM

    I2C協(xié)議讀取EEPROM數(shù)據(jù)。瑞薩嵌入式小百科將帶著大家從I2C總線原理、EEPROM(AT24C02)特性,到FSP中
    的頭像 發(fā)表于 01-13 18:05 ?7912次閱讀
    RA MCU眾測寶典 | <b class='flag-5'>I</b>2<b class='flag-5'>C</b>讀取<b class='flag-5'>EEPROM</b>

    基于FPGA的I2C控制模塊設(shè)計(jì)

    I2C_WRITE_WDATA.v模塊實(shí)現(xiàn)I2C寫時(shí)序,I2C_Controller (I2C控制器)例化了
    的頭像 發(fā)表于 12-26 09:48 ?5773次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制<b class='flag-5'>模塊</b>設(shè)計(jì)

    ISO154x-Q1低功耗雙向I2C隔離器:設(shè)計(jì)與應(yīng)用詳解

    ISO154x-Q1低功耗雙向I2C隔離器:設(shè)計(jì)與應(yīng)用詳解 在電子設(shè)計(jì)領(lǐng)域,隔離器對于保障電路安全、穩(wěn)定運(yùn)行起著至關(guān)重要的作用。今天,我們就來深入探討TI推出的ISO1540-Q1
    的頭像 發(fā)表于 12-19 09:25 ?440次閱讀

    CW32單片機(jī)I2C接口來讀寫EEPROM芯片

    所有所需讀取的數(shù)據(jù)全部讀取,之后再發(fā)送停止信號。 四、硬件連接 如下圖所示,MCU和EEPROM通過I2C總線互連。 五、實(shí)例演示:MCU采用頁寫和順序讀操作時(shí)序完成EERPOM的訪問
    發(fā)表于 12-09 07:43

    基于CW32 MCU的I2C接口優(yōu)化穩(wěn)定讀寫EEPROM關(guān)鍵技術(shù)

    問題,實(shí)現(xiàn)多個EEPROM設(shè)備的穩(wěn)定讀寫操作。 通過這些優(yōu)化技術(shù),能夠有效提升CW32 MCU在I2C通信中的穩(wěn)定性和可靠性,確保在復(fù)雜環(huán)境下的數(shù)據(jù)傳輸安全和穩(wěn)定。
    發(fā)表于 12-03 07:29

    深入剖析I2C協(xié)議

    ,I2C也是一種可以多主設(shè)備,多從設(shè)備的總線協(xié)議,通過地址索引,I2C可以使能所需從設(shè)備,I2C的出現(xiàn)主要是用來實(shí)現(xiàn)不同集成電路組件之間的控制功能,比如通過I2C協(xié)議,連接MCU與LC
    的頭像 發(fā)表于 08-21 15:10 ?3847次閱讀
    深入剖析<b class='flag-5'>I2C</b>協(xié)議

    基于 AS32X601 微控制器的定時(shí)器模塊(TIM)技術(shù)研究與應(yīng)用實(shí)踐

    摘要: 本文全面介紹了國科安芯推出的AS32X601系列微控制器的定時(shí)器模塊(TIM),包括其系統(tǒng)架構(gòu)、功能特性、應(yīng)用場景以及工程實(shí)踐要點(diǎn)。通過對芯片的詳細(xì)分析,揭示了其高性能運(yùn)行的基礎(chǔ)。本文詳細(xì)
    的頭像 發(fā)表于 08-19 16:44 ?979次閱讀

    【沁恒CH585開發(fā)板免費(fèi)試用體驗(yàn)】I2C 讀寫EEPROM (三)

    */ I2C_Stop();/* 發(fā)送停止信號 */ return ucAck; } 注釋很清楚,對照I2C的協(xié)議看就行。 接著就是實(shí)現(xiàn)AT2C02的讀寫操作
    發(fā)表于 08-05 22:25

    【沁恒CH585開發(fā)板免費(fèi)試用體驗(yàn)】I2C 讀寫EEPROM (二)

    ); } 任意寫 在實(shí)際過程中,我們經(jīng)常需要任意寫數(shù)據(jù),這里就調(diào)用頁寫的操作,來實(shí)現(xiàn)任意字節(jié)的寫操作。 /** * @brief將緩沖區(qū)中的數(shù)據(jù)寫到I2C EEPROM中 * @pa
    發(fā)表于 08-05 22:13

    AS32X601芯片F(xiàn)lash擦寫調(diào)試技術(shù)解析

    Flash 擦寫操作流程,探討擦寫過程中可能遭遇的挑戰(zhàn)及應(yīng)對策略,旨在為芯片應(yīng)用開發(fā)者、硬件工程師等專業(yè)人士提供系統(tǒng)且詳實(shí)的參考資料,助力其精準(zhǔn)操控 AS32X601 芯片 Flash,保障嵌入式系統(tǒng)穩(wěn)定可靠運(yùn)行。
    的頭像 發(fā)表于 07-22 13:47 ?866次閱讀
    <b class='flag-5'>AS32X601</b>芯片F(xiàn)lash擦寫調(diào)試技術(shù)解析

    AS32系列MCU芯片I2C模塊性能解析與調(diào)試

    國科安芯推出的AS32X601內(nèi)置的I2C模塊提供了符合工業(yè)標(biāo)準(zhǔn)的兩線串行制接口,可用于MCU和外部IIC設(shè)備的通訊。IIC總線使用兩條串行線:串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL。 IIC接口
    的頭像 發(fā)表于 06-20 16:31 ?1076次閱讀
    AS32系列MCU芯片<b class='flag-5'>I2C</b><b class='flag-5'>模塊</b>性能解析與調(diào)試

    AS32X601驅(qū)動系列教程 GPIO_點(diǎn)亮LED詳解

    的大門。自本章開始,正式開始用代碼控制AS32x601各外設(shè)完成功能配置。 需要注意的是,AS32X601提供了8組GPIO,其中GPIOA~GPIOG寄存器操作完全一致,但在使用GPIOH的時(shí)候,寄存器列表中間少了一個32位寄
    的頭像 發(fā)表于 05-23 16:14 ?883次閱讀
    <b class='flag-5'>AS32X601</b>驅(qū)動系列教程 GPIO_點(diǎn)亮LED<b class='flag-5'>詳解</b>

    AS32X601驅(qū)動系列教程 SMU_系統(tǒng)時(shí)鐘詳解

    時(shí)鐘和復(fù)位的管理。在默認(rèn)狀態(tài)下SMU工作在IDLE狀態(tài)。只有接收到PMU的使能信號后才開始工作。SMU模塊會根據(jù)PMU的指令自動配置COR、AXIBUS0/1/2等總線的時(shí)鐘和復(fù)位。 需要注意的是,MCU芯片AS32X601可通
    的頭像 發(fā)表于 05-23 16:01 ?844次閱讀
    <b class='flag-5'>AS32X601</b>驅(qū)動系列教程 SMU_系統(tǒng)時(shí)鐘<b class='flag-5'>詳解</b>

    I2C EEPROM編程失敗的原因?

    我嘗試使用 Cy Control Center 實(shí)用程序?qū)⒐碳螺d到我的 EVM 中, 第一天,我嘗試了很多次,但都失敗了,比如下面的錯誤, I2C EEPROM 編程失敗。 我搜索了英飛凌社區(qū)
    發(fā)表于 05-06 07:25

    【RA-Eco-RA4M2開發(fā)板評測】I2C讀取EEPROM(二)

    實(shí)現(xiàn)任意字節(jié)的寫操作。 /** * @brief將緩沖區(qū)中的數(shù)據(jù)寫到 I2C EEPROM 中 * @parampBuffer: 緩沖區(qū)指針 * @paramWriteAddr: 寫地址
    發(fā)表于 04-28 23:14
    中山市| 东丰县| 古田县| 黄浦区| 定襄县| 宕昌县| 新乡县| 嘉义县| 确山县| 长白| 江门市| 乌拉特中旗| 武汉市| 逊克县| 越西县| 朝阳市| 大竹县| 明光市| 丹凤县| 河曲县| 绥宁县| 吴旗县| 宿迁市| 罗平县| 阳曲县| 东明县| 宾阳县| 焉耆| 满洲里市| 绥宁县| 天等县| 库车县| 海淀区| 松江区| 濉溪县| 铜鼓县| 黄梅县| 英山县| 新丰县| 上思县| 清新县|