(正好手上的nodemcu支援uart、spi、i2c協議,所以這篇文章乾脆就用nodemcu來分析協議了~)
uart
用邏輯分析儀捕捉nodemcu init.lua給上位機傳送 「a」:
-- init.lua
tmr.alarm(1, 1000, tmr.alarm_auto, function()
print('a')
end)12
34解碼設定:
解碼結果:
spigithub上的nodemcu專案編譯的韌體中的spi沒法用,測了好久,時序都不對。所以用的arduino for esp專案來測的spi時序。
#include
void setup()}1
2345
6789
10解碼設定:
解碼結果:
i2ci2c協議只用到兩根線。具體細節可以參考i2c匯流排協議
-- init.lua
id = 0
sda = 1
scl = 2
i2c.setup(id, sda, scl, i2c.slow)
tmr.alarm(1, 10, tmr.alarm_auto, function()
i2c.start(id)
i2c.write(0, 0xad)
i2c.stop(id)
end)12
3456
78910
1112
解碼設定:
解碼結果:
SPI通訊協議總結
資料 於網上,不足之處歡迎指正,技術無邊,多多交流 1 什麼是spi?spi是序列外設介面 serial peripheral inte ce 的縮寫。是 motorola 公司推出的一種同步序列接 術,是一種高速的,全雙工,同步的通訊匯流排。2 spi優點 支援全雙工通訊 通訊簡單 資料傳輸速率塊...
CAN通訊協議總結
一 應用範圍 廣泛應用於汽車電子行業,其優點在於傳輸距離遠,抗電磁干擾能力強,有錯誤檢測,錯誤通知以及自動重傳等功能。物理層 序列非同步通訊,半雙工。can通訊節點由can控制器和can收發器組成,只有兩根訊號線,can h和can l,用於產生差分訊號來表示顯性電平和隱性電平。顯性電平 記產生差分...
常見的序列通訊協議
1.uart uart是通用非同步收發傳輸器,使用rxd和txd兩根線實現非同步全雙工通訊 為確保通訊可靠,可以在通訊兩邊接共地 因此,完整的uart通訊只需最少3根線即可。rxd是傳送資料線,txd是接收資料線,通訊雙方使用交叉互聯,rxd接對方txd,txd接對方rxd。uart使用標準的ttl...