主機發(fā)送示例
- 按GPIO章節(jié)引腳數(shù)字復用功能的相關描述,將SCL、SDA映射到需要的引腳,并配置SCL、SDA引腳為開漏輸出模式;
- 設置SYSCTRL_APBEN1.I2Cx為1,使能I2Cx模塊的時鐘;
- 向SYSCTRL_APBRST1.I2Cx依次寫入0、1,復位I2Cx模塊;
- 配置I2Cx_BRR,使SCL的時鐘速率符合應用需求;
- 設置I2Cx_BRREN為1,使能SCL時鐘發(fā)生器;
- 設置I2Cx_CR.EN為1,使能I2C模塊;
- 設置I2Cx_CR.STA為1,總線嘗試發(fā)送START信號;
- 等待I2Cx_CR.SI變?yōu)?,START信號已發(fā)送到總線上;
- 查詢I2Cx_STAT,如果該寄存器值為0x08或0x10,繼續(xù)執(zhí)行下一步驟,否則進行出錯誤處理。
- 向I2Cx_DR中寫入SLA+W,設置I2Cx_CR.STA為0,設置I2Cx_CR.SI為0,發(fā)送SLA+W;
- 等待I2Cx_CR.SI變?yōu)?,SLA+W已經發(fā)送到總線上;
- 查詢I2Cx_STAT,如果該寄存器值為0x18,繼續(xù)執(zhí)行下一步聚,否則進行出錯處理;
- 向I2Cx_DR寫入等發(fā)送的數(shù)據,設置I2Cx_CR.SI為0,發(fā)送數(shù)據;
- 等待I2Cx_CR.SI變?yōu)?,數(shù)據已發(fā)送到總線上;
- 查詢I2Cx_STAT,如果該寄存器為0x28,繼續(xù)執(zhí)行下一步驟,否則進行出錯處理;
- 如待發(fā)送的數(shù)據未完成,則跳轉到步驟13繼續(xù)執(zhí)行;
- 設置I2Cx_CR.STO為1,設置I2Cx_CR.SI為0,發(fā)送STOP停止信號,結束本次傳輸。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
主板
+關注
關注
54文章
2270瀏覽量
76047 -
編程
+關注
關注
90文章
3707瀏覽量
96699 -
I2C
+關注
關注
28文章
1547瀏覽量
130414 -
GPIO
+關注
關注
16文章
1311瀏覽量
55673
發(fā)布評論請先 登錄
相關推薦
熱點推薦
武漢芯源Cortex-M0+ 32位低功耗MCU CW32L083系列產品介紹
FLASH 、最多 24KB RAM、最多87路GPIO,以及一系列增強型外設。外設主要包括:1路12位ADC,6路UART、2路SPI、2路IIC以及多路定時器等功能模塊,相較其他系列產品CW32L083
發(fā)表于 08-24 09:12
CW32L083產品介紹
CW32L083是一款基于eFlash的單芯片低功耗微控制器,集成了ARM?Cortex?-M0+
核心,主頻高達64MHz,高速嵌入式存儲器(高達256K字節(jié)的FLASH和
高達24K字節(jié)
發(fā)表于 09-14 06:41
CW32L083微控制器數(shù)據手冊
定時器以及一組高級控制 PWM 定時器。CW32L083 可以在 -40° C 到 85° C 的溫度范圍內工作,供電電壓寬達 1.65V ~ 5.5V。支持 Sleep 和 DeepSleep兩種低功耗工作模式。
發(fā)表于 09-14 06:27

CW32L083 I2C主板發(fā)送編程示例
評論