娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年10月30日(星期三)

正在發生

2019年10月30日 | STM32之I2C 學習筆記

發布者:ww313618 來源: eefocus關鍵字:STM32  I2C  串行總線 手機看文章 掃描二維碼
隨時隨地手機看文章

一、基本概念

(1)I2C是兩線式串行總線,由數據線SDA和時鐘SCL構成的串行總線,可發送和接收數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送,高速IIC總線一般可達400kbps以上。


(2)IIC是半雙工通信方式,也就是說它既可以接收也可以發送,但是由于它只有一根數據線,所以接收和發送不能同時進行。


二、I2C協議

(1)空閑狀態:數據線SDA和時鐘SCL線都處于高電平


(2)開始信號:SCL線持續處于高電平,數據線SDA由高變為低。


(3)停止信號:SCL線持續處于高電平,數據線SDA由低變為低。


(4)應答信號:位發送器每發送一個字節,就在時鐘脈沖9期間釋放數據線,由接收器反饋一個應答信號。 應答信號為低電平時,規定為有效應答(ACK簡稱應答位)


(5)數據的有效性:數據SDA在SCL的上升沿到來之前就需準備好。并在在下降沿到來之前必須穩定。否則,你可以想象,就會被認為是開始信號或者停止信號。


(6)數據的傳輸:在SCL串行時鐘的配合下,在SDA上逐位地串行傳送每一位數據。數據位的傳輸是邊沿觸發。


三、代碼講解

//產生IIC起始信號

void IIC_Start(void)

{

SDA_OUT();     //sda線輸出

IIC_SDA=1;     

IIC_SCL=1;

delay_us(4);

  IIC_SDA=0;//START:when CLK is high,DATA change form high to low 

delay_us(4);

IIC_SCL=0;//鉗住I2C總線,準備發送或接收數據 

}   

 


//產生IIC停止信號

void IIC_Stop(void)

{

SDA_OUT();//sda線輸出

IIC_SCL=0;

IIC_SDA=0;//STOP:when CLK is high DATA change form low to high

  delay_us(4);

IIC_SCL=1; 

IIC_SDA=1;//發送I2C總線結束信號

delay_us(4);    

}

 


//等待應答信號到來

//返回值:1,接收應答失敗

//        0,接收應答成功

u8 IIC_Wait_Ack(void)

{

u8 ucErrTime=0;

SDA_IN();      //SDA設置為輸入  

IIC_SDA=1;delay_us(1);    

IIC_SCL=1;delay_us(1);  

while(READ_SDA)

{

ucErrTime++;

if(ucErrTime>250)

{

IIC_Stop();

return 1;

}

}

IIC_SCL=0;//時鐘輸出0    

return 0;  

//產生ACK應答

void IIC_Ack(void)

{

IIC_SCL=0;

SDA_OUT();

IIC_SDA=0;

delay_us(2);

IIC_SCL=1;

delay_us(2);

IIC_SCL=0;

}

//不產生ACK應答     

void IIC_NAck(void)

{

IIC_SCL=0;

SDA_OUT();

IIC_SDA=1;

delay_us(2);

IIC_SCL=1;

delay_us(2);

IIC_SCL=0;

}

//IIC發送一個字節

//返回從機有無應答

//1,有應答

//0,無應答   

void IIC_Send_Byte(u8 txd)

{                        

    u8 t;   

SDA_OUT();     

    IIC_SCL=0;//拉低時鐘開始數據傳輸

    for(t=0;t<8;t++)

    {              

        IIC_SDA=(txd&0x80)>>7;

        txd<<=1;   

delay_us(2);   //對TEA5767這三個延時都是必須的

IIC_SCL=1;

delay_us(2); 

IIC_SCL=0;

delay_us(2);

    }  

}

//讀1個字節,ack=1時,發送ACK,ack=0,發送nACK   

u8 IIC_Read_Byte(unsigned char ack)

{

unsigned char i,receive=0;

SDA_IN();//SDA設置為輸入

    for(i=0;i<8;i++ )

{

        IIC_SCL=0; 

        delay_us(2);

IIC_SCL=1;

        receive<<=1;

        if(READ_SDA)receive++;   

delay_us(1); 

    }  

    if (!ack)

        IIC_NAck();//發送nACK

    else

        IIC_Ack(); //發送ACK   

    return receive;

}


四、EEPROM(24C02)



關鍵字:STM32  I2C  串行總線 引用地址:STM32之I2C 學習筆記

上一篇:STM32之內存管理 學習筆記
下一篇:stm32學習筆記---ADC電壓采集

推薦閱讀

集微網消息,眼見國內的手機市場日漸飽和,國產手機“走出國門”似乎也是勢在必行。在印尼、印度等地區獲得非常不錯表現的小米正積極地開展打入歐美市場的工作。據外媒報道,小米手機產品將于 11 月 8 日在英國正式上市。據悉小米手機目前已經進入了 80 個國家和地區,而根據 IDC 報告中指出, 2018 年二季度小米手機在印尼市場的出貨量上升至第...
新聞亮點:? 恩智浦與大眾即將在歐洲道路上部署 V2X 技術 ? V2X 技術將提高行車安全性——現階段它可以保護汽車駕駛員,將來也可以保護騎行者與行人 ? Wi-Fi-p 是現有技術中唯一能夠立即大規模量產的安全可靠的 V2X 技術 德國漢堡——2019 年 10 月 30 日——全球最大的汽車半導體供應商恩智浦半導體 NXP Semiconductors N.V.(...
本周,索尼PlayStation官方發布了其手機 App 的最新版,玩家可以通過該應用與好友聊天和獲取游戲資訊,也可以通過這款應用在 PS4和 PS5下載游戲。據官方宣傳視頻介紹,該應用主要在應用界面、資訊整合、語音聊天、原生 PS 商店以及 PS5專屬功能等方面進行功能升級和改進。主要功能如下。界面更新:新版 App 的 UI 更為簡潔利落,玩家可以通過新...
根據路透社消息,美國參議院近日通過了《2021年安全設備法》(Secure Equipment Act of 2021 ),以“安全威脅”為由,禁止美國聯邦通訊委員會(FCC)對華為和中興等公司進行審議或頒發新的設備執照,該法案將提交給美國總統拜登簽署。這被視為美國政府打擊中國電信和科技公司的新舉措,從而堵死美國企業采購中國通信等高科技設備的途徑。圍堵中國企業...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 河南省| 福海县| 武山县| 蒙山县| 赣榆县| 宿松县| 邛崃市| 刚察县| 沁源县| 渑池县| 合江县| 阳春市| 蛟河市| 牙克石市| 罗山县| 泰兴市| 满城县| 西乌珠穆沁旗| 宁海县| 土默特左旗| 政和县| 遂川县| 太康县| 二连浩特市| 诏安县| 建瓯市| 介休市| 鸡泽县| 满城县| 五华县| 湘乡市| 永丰县| 岚皋县| 攀枝花市| 兴义市| 紫金县| 二连浩特市| 广东省| 阳谷县| 宁安市| 大厂|