i2c msg一些標誌的解釋

2021-06-19 19:31:07 字數 1125 閱讀 5303

i2c_m_ignore_nak:

設定這個標誌意味當前i2c_msg忽略i2c器件的ack和nack訊號。

i2c_m_nostart: 

設定這個標誌意味當前i2c_msg不傳送start訊號。注意,其實呼叫bit_xfer的一開始就已經發了start訊號了(程式第10 行),這個標記無非就是標誌是否傳送位址第18行。其次,如果乙個i2c_msg沒有定義i2c_m_nostart而且又不是msgs序列裡的第乙個 i2c_msg,則回傳送重複start訊號,我想這就是這個標誌起這個名的原因。我們可以猜想,

1.msgs序列第乙個資料必須是位址,同時必須不定義這個標誌位

2.在進行讀資料,要從寫操作轉變為讀操作時,會發重複start訊號和器件位址時,必須不定義這個標誌位

3.其它情況下一的i2c_msg必須定義這個標誌

以上只是我看完這個函式的理解,不一定正確。同時1和2總結下來就是發器件位址(注意,是器件位址,不是像eeprom那樣的eeprom地 址,這個位址是當資料發的)時會不設定i2c_m_nostart, 發資料時就設定i2c_m_nostart這個標誌。

i2c_m_no_rd_ack:

這個標識表示在正行讀操作時不去ack,我不知道其它晶元如果,如果是at24c04則一定不能設這個標誌位了。

(下面三個標誌為均為bit_doaddress函式使用,結合上面的說明,也就是這時i2c_m_nostart一定沒有設定。)

i2c_m_rd:

表示這是乙個讀操作,預設是把相應的位置1

i2c_m_rev_dir_addr:

表示把讀寫標誌位反轉,也就是讀是把相應位置0

i2c_m_ten:

表示這個器件的器件位址是10bit的。一定要搞清,這是器件位址,不是指eeprom的rom位址。24c02等晶元真正的器件位址只有4位 永遠有效(0xa),低4位用來放其它東西了(根據容量有可能是器件位址的低3位,或rom位址的高3位)。也是說,無論什麼容量,這類器件的位址只是器 件位址我們只選7位模式(核心只區分10位模式和其它模式)

一些專業的解釋

1.pid 比例 proportion 積分 integral 微分 derivative 控制 pid控制是乙個在工業控制應用中常見的反饋迴路部件,由比例單元p 積分單元i和微分單元d組成。pid控制的基礎是比例控制 積分控制可消除穩態誤差,但可能增加超調 微分控制可加快大慣性系統響應速度以及減弱...

TTF 的一些解釋

簡言之,聯邦核心 fc 是乙個開發環境,它使得能夠緊湊地表示將tensorflow 與分布式通訊運算子 例如聯邦平均中使用的運算子 組合在一起的程式邏輯 計算一組客戶端上的分布式和 平均數和其他型別的分布式聚合系統中的裝置,這些裝置的廣播模型和引數等。您可能知道tf.contrib.distribu...

BOM DOM的一些解釋

dom 是為了操作文件出現的 api,document 是其的乙個物件 bom 是為了操作瀏覽器出現的 api,window 是其的乙個物件。bom是瀏覽器物件模型,是對瀏覽器本身進行操作 dom是文件物件模型,是對瀏覽器 可看成容器 內的內容進行操作 歸dom管的 e區 就是你說的document...