STM32硬體IIC之DMA傳輸資料

2021-07-25 12:02:10 字數 1132 閱讀 6670

這裡給出乙個實現用dma傳輸iic資料的實現過程
這裡咱們說3個點

1.檢查iic匯流排上是否有指定位址的器件

2.iic讀取資料

3.iic寫資料

下面來乙個乙個詳細說明

1.檢查iic匯流排上是否有指定位址的器件

1.判斷是否匯流排忙,如果忙則等待

2.產生起始位

3.等待起始位產生完成

4.傳送器件位址(這裡選擇讀寫都是可以的)

5.等待是否有ack位回應,(這裡有兩種判斷方法1.通過判斷ack標誌2.通過判斷addr標誌),最好使用addr標誌位

6.清楚addr標誌位

7.產生停止位

8.通過判斷是否有ack,就可以判斷是否有指定位址的器件

2.iic讀取資料

1.判斷是否匯流排忙,如果忙則等待

2.產生起始位

3.等待起始位產生完成

4.傳送器件位址,這裡方向上選擇寫資料

5.等待傳送完成,通過判斷addr標誌位是否置位

6.清除addr標誌位

7.同時判斷txe位,這個在傳送資料完成之後,也會被置位

8.傳送要讀取記憶體的位址

9.等待txe位置位

10.再次傳送起始位

11.等待起始位產生完成

12.傳送器件位址,這裡方向上選擇讀資料

13.等待傳送完成,通過判斷addr標誌位是否置位

14.使能last位,使能這個,就能做到在傳輸最後乙個資料的時候,自動產生nack

14.開始用dma傳輸下面的資料

3.iic寫資料

1.判斷是否匯流排忙,如果忙則等待

2.產生起始位

3.等待起始位產生完成

4.傳送器件位址,這裡方向上選擇寫資料

5.等待傳送完成,通過判斷addr標誌位是否置位

6.清除addr標誌位

7.同時判斷txe位,這個在傳送資料完成之後,也會被置位

8.傳送要讀取記憶體的位址

9.等待txe位置位

10.開始用dma傳輸下面的資料

11.在dma傳輸完成中斷中產生停止位

stm32(十四)IIC總結

一 iic匯流排知識 sda 雙向資料線,主機可以通過sda線傳送資料給集群,集群也可以通過sda線傳送資料給主機 scl 時鐘訊號線,驅動資料線收發資料的脈衝訊號由scl提供,scl脈衝訊號永遠由主機發出 在匯流排上sda和scl都有上拉電阻,因為iic匯流排介面的晶元sda,scl輸出都是開漏輸...

stm32軟體模擬iic

iic inter integrated circuit 匯流排是一種由philips公司在80年代開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。它是半雙工通訊方式。iic匯流排最主要的優點是其簡單性和有效性。由於介面直接在元件之上,因此iic匯流排占用的空間非常小,減少了電路板的空間和晶元...

stm32硬體除錯

stm32的基本系統主要涉及下面幾個部分 一 電源 1 無論是否使用模擬部分和ad部分,mcu外圍出去vcc和gnd,vdda vssa vref 如果 封裝有該引腳 都必需要連線,不可懸空 2 對於每組對應的vdd和gnd都應至少放置乙個104的陶瓷電容用於濾波,並接該 電容應放置盡量靠近mcu ...