. 解釋軟體iic與硬體iic;iic 通訊協議 (inter-integrated circuit,又叫 i2c 、i²c ) 是由 phiilps 公司開發的,由於它引腳少,硬體實現簡單,可擴充套件性強,不需要 usart、can 等通訊協議的外部收發裝置,現在被廣泛地使用在系統內多個積體電路 ( ic ) 間的通訊。. 閱讀aht20資料手冊,程式設計實現:每隔2秒鐘採集一次溫濕度資料,並通過串列埠傳送到上位 機(win10);
. 安裝 ardunio ide 和相關軟體支援庫,在ardunio 完成stm32板子的串列埠通訊程式:1)持續向串列埠輸出「hello world!」;2)當接收到「stop!」時,停止輸出。
物理層
iic 通訊裝置之間的常用連線方式如下圖:
協議層
i2c 的協議定義了通訊的起始和停止訊號、資料有效性、響應、仲裁、時鐘同步和位址廣播等環節。
通訊的起始和停止訊號
資料有效性
從圖中可以看出i2c在通訊的時候,只有在scl處於高電平時,sda的資料傳輸才是有效的。sda 訊號線是用於傳輸資料,scl 訊號線是保證資料同步。
響應
當sda傳輸資料後,接收方對接受到的資料進行乙個應答。如果希望繼續進行傳輸資料,則回應應答訊號(低電平),否則回應非應答訊號(高電平)。
相關比較
1.硬體 iic 的效率要遠高於軟體的;軟體 iic 由於不受管腳限制,介面比較靈活
2.硬體 iic 是直接呼叫內部暫存器進行配置;軟體 iic 是通過 gpio ,軟體模擬暫存器的工作方式
3.硬體 iic 配置了 io 口的功能(iic 功能);軟體 iic 沒有配置 io 口的功能
硬體 iic 的 iic 寫函式,有呼叫現成的函式或者給某個暫存器賦值;軟體 iic 傳輸資料的方式是乙個 bit 乙個 bit 模擬發生送的,肯定用到了迴圈
4.根據**量判斷,硬體 iic 的**量肯定比軟體 iic 的**量小
硬體 iic 直接使用外設來控制引腳,可以減輕 cpu 的負擔。不過使用硬體iic 時必須使用某些固定的引腳作為 scl 和 sda,軟體模擬 iic 則可以使用任意 gpio 引腳,相對比較靈活。對於硬體iic用法比較複雜,軟體iic的流程更清楚一些。如果要詳細了解iic的協議,使用軟體iic可能更好的理解這個過程。在使用iic過程,硬體iic可能通訊更加快,更加穩定。
void read_aht20_once(void)
aht20晶元讀取資料
void read_aht20(void)
i2c_start(
);//i2c啟動
i2c_writebyte(0x71)
;//i2c寫資料
ack_status = receive_ack(
);//收到的應答資訊
readbyte[0]
= i2c_readbyte(
);//i2c讀取資料
send_ack(
);//傳送應答資訊
readbyte[1]
= i2c_readbyte();
send_ack();
readbyte[2]
= i2c_readbyte();
send_ack();
readbyte[3]
= i2c_readbyte();
send_ack();
readbyte[4]
= i2c_readbyte();
send_ack();
readbyte[5]
= i2c_readbyte();
sendnot_ack();
//send_ack();
i2c_stop(
);//i2c停止函式
//判斷讀取到的第乙個位元組是不是0x08,0x08是該晶元讀取流程中規定的,如果讀取過程沒有問題,就對讀到的資料進行相應的處理
if((readbyte[0]
& 0x68)
== 0x08 )
else
printf(
"\r\n");
//根據aht20晶元中,溫度和濕度的計算公式,得到最終的結果,通過串列埠顯示
printf(
"溫度:%d%d.%d",t1/100,(t1/10)%10,t1%10)
; printf(
"濕度:%d%d.%d",h1/100,(h1/10)%10,h1%10)
; printf(
"\r\n");
}
結果顯示aht20溫度採集. 基於STM32,AHT20溫濕度採集
總結學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第23章 i2c 讀寫eeprom 原理章節 2 閱讀aht20資料手冊,程式設計實現 每隔2秒鐘採集...
溫度資料採集模組簡介
我公司現有兩種溫度資料採集模組,分別是cycwj 6型 cycwj 406型。用於dcs系統作為下位機使用,將現場採集到的多點溫度資料傳送到上位機,適用於果蔬貯藏 水產品冷藏 倉庫 化工 醫藥等行業。一 cycwj 6溫度資料採集模組 1 採用atmel微控制器 watchdog電路 軟體陷阱與冗餘...
wemos d1 採集溫度資料上傳到mqtt伺服器
用到的硬體 1.wemos d1板。2.dh1感測器。3.樹莓派。實驗步驟 1.樹莓派安裝mqtt伺服器,並驗證。2.wemos 連線dh1測試。dh1感測器有四個引腳連線如下圖 wemos 如下 include include include dht.h define dhtpin d4 定義感測...