stm32軟體模擬iic

2021-09-27 08:24:38 字數 2092 閱讀 7748

iic(inter-integrated circuit)匯流排是一種由philips公司在80年代開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。它是半雙工通訊方式。

iic匯流排最主要的優點是其簡單性和有效性。由於介面直接在元件之上,因此iic匯流排占用的空間非常小,減少了電路板的空間和晶元管腳的數量,降低了互聯成本。匯流排的長度可高達25英呎,並且能夠以10kbps的最大傳輸速率支援40個元件。

iic匯流排的另乙個優點是,它支援多主控(multimastering), 其中任何能夠進行傳送和接收的裝置都可以成為主匯流排。乙個主控能夠控制訊號的傳輸和時鐘頻率。當然,在任何時間點上只能有乙個主控。

iic序列匯流排一般有兩根訊號線,一根是雙向的資料線sda,另一根是時鐘線scl,其時鐘訊號是由主控器件產生。所有接到iic匯流排裝置上的序列資料sda都接到匯流排的sda上,各裝置的時鐘線scl接到匯流排的scl上。對於併聯在一條匯流排上的每個ic都有唯一的位址。

一般情況下,資料線sda和時鐘線scl都是處於上拉電阻狀態。因為:在匯流排空閒狀態時,這兩根線一般被上面所接的上拉電阻拉高,保持著高電平。

iic匯流排在傳輸資料的過程中一共有三種型別訊號,分別為:開始訊號、結束訊號和應答訊號。這些訊號中,起始訊號是必需的,結束訊號和應答訊號,都可以不要。同時我們還要介紹其空閒狀態、資料的有效性、資料傳輸。

空閒狀態

當iic匯流排的資料線sda和時鐘線scl兩條訊號線同時處於高電平時,規定為匯流排的空閒狀態。此時各個器件的輸出級場效電晶體均處在截止狀態,即釋放匯流排,由兩條訊號線各自的上拉電阻把電平拉高。 

起始訊號與停止訊號

起始訊號:當時鐘線scl為高期間,資料線sda由高到低的跳變;啟動訊號是一種電平跳變時序訊號,而不是乙個電平訊號;

停止訊號:當時鐘線scl為高期間,資料線sda由低到高的跳變;停止訊號也是一種電平跳變時序訊號,而不是乙個電平訊號。

應答訊號

傳送器每傳送乙個位元組(8個bit),就在時鐘脈衝9期間釋放資料線,由接收器反饋乙個應答訊號。 

應答訊號為低電平時,規定為有效應答位(ack,簡稱應答位),表示接收器已經成功地接收了該位元組;

應答訊號為高電平時,規定為非應答位(nack),一般表示接收器接收該位元組沒有成功。

對於反饋有效應答位ack的要求是:接收器在第9個時鐘脈衝之前的低電平期間將資料線sda拉低,並且確保在該時鐘的高電平期間為穩定的低電平。 如果接收器是主控器,則在它收到最後乙個位元組後,傳送乙個nack訊號,以通知被控傳送器結束資料傳送,並釋放資料線sda,以便主控接收器傳送乙個停止訊號p。

資料有效性

iic匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定;只有在時鐘線上的訊號為低電平期間,資料線上的高電平或低電平狀態才允許變化。 

即:資料在時鐘線scl的上公升沿到來之前就需準備好。並在在下降沿到來之前必須穩定。

**#include "usart.h"        

#include "delay.h"    

#include "led.h"   

#include "lcd.h"  

#include "key.h"  

#include "24cxx.h" 

#include "usmart.h" 

//alientek mini stm32¿ª·¢°å·¶àý´úâë19

//iicêµñé  

//¼¼êõö§³ö£ºwww.openedv.com

//¹ãöýêððçòíµç×ó¿æ¼¼óðïþ¹«ë¾

//òªð´èëµ½24c02µä×ö·û´®êý×é

const u8 text_buffer=;

#define size sizeof(text_buffer)     

int main(void)

lcd_showstring(60,150,200,16,16,"24c02 ready!");    

point_color=blue;//éèöã×öìåîªà¶é«      

while(1)

if(key==key0_pres)//key0 °´ïâ,¶áè¡×ö·û´®²¢ïôê¾

i++;

delay_ms(10);

if(i==20)

}}

STM32模擬IIC讀寫EEPROM

本人在最近的專案中,需要讀寫eeprom裡面的內容並分析。該eeprom晶元為microchip technology公司的24lc02b系列。用stm32f103晶元做主機通過iic介面去和它通訊。首先介紹晶元的基本特性,容量為 256 x 8bit 2kbit共有256位元組 位址和資料都是8b...

STM32通訊介面(二)IIC 軟體模擬

一 概述 iic 即inter integrated circuit 積體電路匯流排 這種匯流排型別是由 飛利浦半導體公司在八十年代初設計出來的一種簡單 雙向 二線制 同步序列匯流排,主要是用來連線整體電路 ics iic是一種多向 控制匯流排 也就是說多個晶元可以連線到同一 匯流排結構 下,同時每...

stm32模擬iic暫存器配置

io方向設定 define mpu sda in define mpu sda out io操作函式 define mpu iic scl pbout 10 scl define mpu iic sda pbout 11 sda define mpu read sda pbin 11 輸入sda 每...