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

標(biāo)題: IIC協(xié)議及STM32中IIC初始化結(jié)構(gòu)體 [打印本頁(yè)]

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

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

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

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

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

  uint16_t I2C_AcknowledgedAddress; /*指定地址長(zhǎng)度,可為7為及10為 */
}I2C_InitTypeDef;


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





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1