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

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

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

基于MM32F0140的I2C與24C02通信

靈動(dòng)MM32MCU ? 來(lái)源:靈動(dòng)MM32MCU ? 2023-09-28 16:52 ? 次閱讀

Mini_F0140原理圖上I2C連接著24C02:

6a16d878-5ddb-11ee-939d-92fbcf53809c.png

一.IIC介紹

I2C(Inter-Integrated Circuit)是一種通用的總線協(xié)議,實(shí)現(xiàn)I2C需要兩根信號(hào)線完成信息交換,SCL時(shí)鐘作為信號(hào)線,SDA作為數(shù)據(jù)輸入/輸出線。I2C屬于同步通信,由于輸入輸出數(shù)據(jù)均使用一根線,因此通信方向?yàn)榘腚p工。

主要特征有:

1. I2C 總線協(xié)議轉(zhuǎn)換器/并行總線

2. 半雙工同步操作

3. 支持主從模式

4. 支持 7 位和 10 位地址格式

5. 支持起始(START)、停止(STOP)、重新起始(RESTART)以及應(yīng)答(ACK)信號(hào)的生成和檢測(cè)

6. 支持標(biāo)準(zhǔn)模式(最大 100Kbps)、快速模式(最大 400Kbps)

7. 分別有 2 字節(jié)的發(fā)送和接收緩沖

8. 支持過(guò)濾毛刺功能

9. 支持 DMA 操作

10. 支持中斷和查詢操作

11. 支持多個(gè)從地址(詳細(xì)見(jiàn)用戶手冊(cè))

下圖為信號(hào)變化及其特定含義:

6a2ed248-5ddb-11ee-939d-92fbcf53809c.png

當(dāng)主發(fā)送器如下圖所示傳輸數(shù)據(jù)時(shí),從接收器在接收到的每個(gè)字節(jié)后產(chǎn)生一個(gè) ACK 來(lái)響應(yīng)主發(fā)送器。

6a40ec62-5ddb-11ee-939d-92fbcf53809c.png

二.24C02

24C02是低工作電壓的2K位串行電可擦除只讀存儲(chǔ)器,內(nèi)部組織為256個(gè)字節(jié),每個(gè)字節(jié)8位,該芯片被廣泛應(yīng)用于低電壓及低功耗的工商業(yè)領(lǐng)域。

主器件通過(guò)發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過(guò)程,然后發(fā)送它所要尋址的從器件的地址。8位從器件地址的高4位固定為1010。接下來(lái)的3位(A2、A1、A0)為器件的地址位。當(dāng)接收數(shù)據(jù)時(shí),與I2C連接的從器件名為0xA0。

三.例程

向從機(jī)寫(xiě)數(shù)據(jù)后,再讀取數(shù)據(jù)。

1. I2C配置

RCC_APB1PeriphClockCmd(RCC_APB1ENR_I2C1,ENABLE);
I2C_StructInit(&I2C_InitStruct);
//ConfigureI2Casmastermode
I2C_InitStruct.Mode=I2C_CR_MASTER;
I2C_InitStruct.OwnAddress=0;
I2C_InitStruct.Speed=I2C_CR_STD;
I2C_InitStruct.ClockSpeed=100000;
I2C_Init(I2Cx,&I2C_InitStruct);
I2C_Send7bitAddress(I2Cx,0xA0,I2C_Direction_Transmitter);
I2C_Cmd(I2Cx,ENABLE);

2. 定義24C02結(jié)構(gòu)體

typedefstruct{
u8busy;
u8ack;
u8fault;
u8opt;
u8sub;
u8cnt;
u8*ptr;
u8sadd;
}gEepromTypeDef;

3. 寫(xiě)數(shù)據(jù)

EEPROM_WriteByte(sub);
while(cnt--){
EEPROM_WriteByte(*ptr);
ptr++;
}
I2C_GenerateSTOP(I2C1,ENABLE);
while((I2C_GetITStatus(I2C1,I2C_IT_STOP_DET))==0);
gEeprom.ack=true;
gEeprom.busy=false;
EEPROM_WaitEEready();
returntrue;

4. 讀數(shù)據(jù)

u8i,flag=0,_cnt=0;
for(i=0;i

5. 結(jié)果

6a4ffcb6-5ddb-11ee-939d-92fbcf53809c.png






審核編輯:劉清

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

    關(guān)注

    27

    文章

    8505

    瀏覽量

    145983
  • 緩沖器
    +關(guān)注

    關(guān)注

    6

    文章

    1903

    瀏覽量

    45327
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    552

    瀏覽量

    99931
  • I2C總線
    +關(guān)注

    關(guān)注

    8

    文章

    384

    瀏覽量

    60664
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    16991

原文標(biāo)題:靈動(dòng)微課堂 (第272講)|基于MM32F0140的I2C與24C02通信

文章出處:【微信號(hào):MindMotion-MMCU,微信公眾號(hào):靈動(dòng)MM32MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    F0系列的24c02I2C讀寫(xiě)程序

    跪求一個(gè)STM32 F0系列的24c02I2C讀寫(xiě)程序,謝謝了。希望有朋友能幫幫我,在此謝過(guò)了。
    發(fā)表于 01-10 09:02

    24c02/24c01/24c04讀寫(xiě)程序

    24c02/24c01/24c04  I2C EEPROM字節(jié)讀寫(xiě)驅(qū)動(dòng)程序,芯片A0-A1-A2要接GND(
    發(fā)表于 10-07 12:39 ?19次下載

    24c02基礎(chǔ)程序

    24c02寫(xiě)入調(diào)用程序 用于初次接觸24c02 學(xué)習(xí)24c02用的
    發(fā)表于 07-12 15:14 ?24次下載

    單片機(jī)模擬I2C總線及24C02讀寫(xiě)實(shí)例(c源代碼),24C02 read / write process

    單片機(jī)模擬I2C總線及24C02讀寫(xiě)實(shí)例(c源代碼),24C02 read / write process 關(guān)鍵字:?jiǎn)纹瑱C(jī)模擬
    的頭像 發(fā)表于 09-20 19:41 ?1830次閱讀

    24C02讀寫(xiě)操作程序設(shè)計(jì)實(shí)例,24C02 read / write process

    24C02讀寫(xiě)操作程序設(shè)計(jì)實(shí)例,24C02 read / write process 關(guān)鍵字:24C02讀寫(xiě)操作程序設(shè)計(jì)實(shí)例 24C
    的頭像 發(fā)表于 09-20 19:41 ?1433次閱讀

    24c02讀寫(xiě)程序(已通過(guò)測(cè)試),24C02 read / write process

    SCLsbit SDA = P3^6; //24c02 SDA// 功能函數(shù)void x24c02_delay(char x){int i;for(i=0;
    的頭像 發(fā)表于 09-20 19:41 ?2475次閱讀

    STM32f103系列i2c讀寫(xiě)文件at24c02

    STM32f103系列i2c讀寫(xiě)文件at24c02免費(fèi)下載。
    發(fā)表于 03-04 09:43 ?22次下載

    基于MM32生態(tài)實(shí)現(xiàn)I2C接口通訊的方式

    對(duì)于I2C的基本概念及時(shí)序等知識(shí)點(diǎn),本文不再詳細(xì)描述,大家可以下載附件中的《I2C總線概要》和《I2C總線規(guī)范》進(jìn)行研究。 本文將通過(guò)如下四個(gè)方面,講述I2C
    的頭像 發(fā)表于 08-15 09:48 ?1565次閱讀

    24C02的秘密

    本文主要介紹了一下目前市場(chǎng)上面24C02幾種打線方式的區(qū)別,有利于消費(fèi)者在芯片選型替代、電路設(shè)計(jì)、軟件編程的注意一些細(xì)節(jié),另外就是給出了用C語(yǔ)言軟件模擬I2C協(xié)議和用匯編語(yǔ)言軟件模擬I2C
    的頭像 發(fā)表于 11-28 11:40 ?5053次閱讀

    MM32F0140 用戶手冊(cè)(英文版)

    MM32F0140 用戶手冊(cè)(英文版)
    發(fā)表于 02-22 18:46 ?0次下載
    <b class='flag-5'>MM32F0140</b> 用戶手冊(cè)(英文版)

    MM32F0140學(xué)習(xí)筆記——CRC

    MM32F0140學(xué)習(xí)筆記——CRC
    的頭像 發(fā)表于 11-10 18:27 ?478次閱讀
    <b class='flag-5'>MM32F0140</b>學(xué)習(xí)筆記——CRC

    MM32F0140 SPI學(xué)習(xí)筆記

    MM32F0140 SPI學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:51 ?498次閱讀
    <b class='flag-5'>MM32F0140</b> SPI學(xué)習(xí)筆記

    MM32F0140 DMA學(xué)習(xí)筆記

    MM32F0140 DMA 學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-18 16:57 ?598次閱讀
    <b class='flag-5'>MM32F0140</b> DMA學(xué)習(xí)筆記

    MM32F0140 UART學(xué)習(xí)筆記

    MM32F0140 UART學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:45 ?656次閱讀
    <b class='flag-5'>MM32F0140</b> UART學(xué)習(xí)筆記

    MM32F0140 GPIO學(xué)習(xí)筆記

    MM32F0140 GPIO學(xué)習(xí)筆記
    的頭像 發(fā)表于 09-26 16:42 ?450次閱讀
    <b class='flag-5'>MM32F0140</b> GPIO學(xué)習(xí)筆記