欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3805|回復(fù): 0
收起左側(cè)

IIC協(xié)議及STM32中IIC初始化結(jié)構(gòu)體

[復(fù)制鏈接]
ID:327671 發(fā)表于 2019-11-24 10:38 | 顯示全部樓層 |閱讀模式
IIC協(xié)議
分為   物理層(硬件)和協(xié)議層(軟件)   同步串行通訊方式
物理層(硬件):兩根總線 SDA(數(shù)據(jù)線)   SCL(時鐘線)
               每一個連接到總線的設(shè)備都有一個獨立的地址(7——10位),主機利用這個地址進行不同設(shè)備之間的通訊。
               上拉電阻一般接4.7K   實現(xiàn)高阻態(tài)  線與
               當(dāng)設(shè)備空閑時,輸出高阻態(tài)。   高阻態(tài)表示邏輯1  地表示邏輯0
               電壓為:2-15v
               STM32使用時引腳配置為開漏輸出模式
               三種傳輸模式:標(biāo)準(zhǔn)模式  傳輸速率100kbps
                            快速模式  傳輸速率400kbps
                            高速模式  傳輸速率3.4mbps  但目前大多IIC設(shè)備不支持
                            只要滿足設(shè)備傳輸要求  可根據(jù)具體情況設(shè)置傳輸速率
                連接到總線的電容不能超過400pf限制。
協(xié)議層(軟件):起始和停止信號、數(shù)據(jù)有效性、響應(yīng)、仲裁、時鐘同步和地址廣播的等
               主機寫從機讀信號傳輸過程:
                   起始信號  從機地址  讀寫方向R/nW(主機1讀0寫) 從機產(chǎn)生應(yīng)答信號給主機   數(shù)據(jù)傳輸   從機產(chǎn)生應(yīng)答信號  數(shù)據(jù)傳輸  判斷是否應(yīng)答(應(yīng)答則繼續(xù)傳輸數(shù)據(jù)非應(yīng)答則停止傳輸) 主機發(fā)出停止信號
               主機讀從機寫信號傳輸過程:
                   起始信號  從機地址  讀寫方向R/nW(主機1讀0寫) 從機產(chǎn)生應(yīng)答信號給主機   數(shù)據(jù)傳輸   主機產(chǎn)生應(yīng)答信號  數(shù)據(jù)傳輸  判斷是否應(yīng)答(應(yīng)答則繼續(xù)傳輸數(shù)據(jù)非應(yīng)答則停止傳輸) 主機發(fā)出停止信號
               復(fù)用信號傳輸數(shù)據(jù),兩個起始信號,第一個發(fā)送要讀寫寄存器的地址,第二個發(fā)送要讀寫的數(shù)據(jù)
               當(dāng)SCL為高電平時SDA線從高電平向低電平切換表示通訊起始
               當(dāng)SCL為高電平時SDA線從低電平向高電平切換表示通訊結(jié)束
               SCL的每個時鐘周期傳輸一位數(shù)據(jù),SCL高電平SDA數(shù)據(jù)有效,SCL低電平數(shù)據(jù)無效,此時SDA數(shù)據(jù)交換。
軟件模擬協(xié)議    硬件實現(xiàn)協(xié)議
1、初始化IIC相關(guān)的GPIO
2、配置IIC外設(shè)的工作模式
3、編寫IIC寫入EEPROM的BYTE write函數(shù)
4、編寫IIC讀取EEPROM的RANDOM read函數(shù)
5、使用page write 及set read函數(shù)并校驗
//IIC初始化結(jié)構(gòu)體
typedef struct
{
  uint32_t I2C_ClockSpeed;          /*設(shè)置SCL時鐘頻率,此值要低于400000*/

  uint16_t I2C_Mode;                /*指定工作模式,可選IIC和SMBUS模式 */

  uint16_t I2C_DutyCycle;           /*指定時鐘占空比,可選low/hign = 2:1及16:9模式*/

  uint16_t I2C_OwnAddress1;         /*指定IIC設(shè)備地址*/

  uint16_t I2C_Ack;                 /*使能或關(guān)閉響應(yīng)(一般都要使能)*/

  uint16_t I2C_AcknowledgedAddress; /*指定地址長度,可為7為及10為 */
}I2C_InitTypeDef;


//IO口作為輸出方式時,IO口的IDR寄存器有數(shù)據(jù)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表