UART,SPI,IIC的一點理解

2022-05-04 19:24:45 字數 1399 閱讀 5147

**:

uart通用非同步收發器,uart是通用的非同步傳輸模式,在它這種基礎上加上其他介面或者解碼器就衍生出多種非同步傳輸模式,比如232,485,紅外線等。這就好像腳上穿高跟鞋,跑鞋,皮鞋等,雖然走路方式不一樣,但是其原理都是腳在向前走。自己對非同步和同步的理解,非同步傳輸就好像寫信一樣。假如每個信件裡面寫乙個字元,我傳送3個字元三封信,那麼對方收到三封信之間的間隔可以是隨意的。而同步通訊則好像打**一樣。它要實時的監控著整個傳送過程。從這兩種方式上可以看出非同步傳輸當傳送完資料就可以幹別的事情,而不必關心對方是否收到,就像給多個人寫信,發了就可以給另外乙個人發而不管上一封是否收到。而同步則不行,不能同時和兩個以上的人通**吧,怎麼也得掛了乙個再打另外乙個。

同步通訊(spi和iic):

spi和iic是最常用也是最基礎的兩種同步傳輸方式。

spi的連線一般有四根:時鐘,傳送,接收和片選

iic的連線有兩根:時鐘和資料。在這從通訊過程對照的說下這兩種匯流排。

1、傳送資料首先要知道目標位址。在這裡spi使用的片選線,只要把連線對應目標裝置上片選線拉低就可以了,不需要目標響應,比較霸道一點。而iic是要先把目標位址傳送出去來尋找目標裝置就像在人群中喊乙個人姓名一樣,如果是目標則會響應你。其實這兩種方法可以認為乙個是硬體的方法乙個是軟體的方法。所以他們也有這兩種方法的特徵。前者的優點是速度快,效率高。缺點是佈線複雜了連線多個裝置得多個片選線。而後者正好相反。

2、在傳送的過程中,spi和iic的方式也有很大的區別。spi有三種規則(ti,飛思卡爾,microwire),他們都採取的是無應答的方式。雖然他們的開始訊號等定義規則不同,但是道理一樣,尤其是用ti庫函式操作時,可以忽略一些。spi在開始訊號過後,在主機的clk下,快速的傳送資料。用記**號碼舉例:甲是主,乙是從。甲在接通乙後,按自己說話的速度告訴一遍**號碼,中間沒有任何停頓和重複,說完ok。乙得馬上記下所說的號碼。這樣的優點就是速度快。而缺點也是明顯的。第一,也許乙記的號碼是錯誤的,而甲是不知道的。第二,對乙要求要高一些,道理很簡單,如果說號碼的人語速非常快,我們必須得反應非常快。這也許就是lm3s,spi模組做主時,速度可達系統時鐘的1/2,而作從機只能達1/12的原因。

再說下iic匯流排,首先肯定有乙個開始訊號,開始訊號過後,根據clk傳送資料,在這與spi有乙個比較大的區別是每傳送乙個資料,必須等待從機的響應,如果從機不響應,主機是發不了資料的。同理用**號碼舉例,甲每讀乙個數字,就得等乙答應一聲。這種方式的缺點是傳輸速度慢。而優點也易見,一是傳送的資料準確,因為有了乙的反饋。二是對從機要求低一點,如果從機速度比較慢也沒事,因為此時主機一般得等著。

3、iic是真正意義上的多主,可以模擬公司的**分機的關係。而spi不是。

UIWebView 的一點理解

uiwebview可以用來方便得顯示url request uiwebview 是從uiview繼承而來的。所以本身並沒有實現scroll。當開啟乙個urlrequest之後,uiwebview 自動建立乙個uiscrollview add 到uiwebview的layer 當開啟當前頁面中的lin...

QThread的一點理解

白天在工作中用到的qthread,發現了一些問題,晚上學習了一下,感觸頗深,遂記錄一下 嘻嘻 1 qthread exec 如果不在run 中最後一行寫出來,普通訊號槽可以用,但是qtimer或qtcpsocket或程序類qprocess的訊號槽不能用!2 在標頭檔案裡定義的類,是屬於主線程的。比如...

class new delete的一點理解

今天寫 發現前面new了乙個phead 後面在另乙個函式裡。void a find node p phead do something delete p 沒有報錯 不是很明白為什麼 不是按道理。new才會使用delete配對嗎?這裡沒有出現new怎麼使用delete成功了啊 後面問大大 說是dele...