今天我們學習的是SPI盛杰,是把數據用串口傳輸方式進行交換挽荡。它有一個主控制器,一般我們采用微處理器即供,比如常用的單片機定拟,以及一些其它的外圍設置,比如數碼管逗嫡,液晶顯示頻青自,SD卡等外圍設備。MOSI:是由主機向設備發(fā)出數據的驱证。
MISO:是由設備向主機發(fā)送數據的延窜。
SCK:是起到一個控制數據傳輸的校準,根據arduino官方的說法抹锄,好像還具備有對數據全能的控制作用逆瑞。
SS線是用于一根使能線,特別是接多個外圍設備的時候伙单,可以通過控制SS線获高,對不同的外圍設備進行通信。
寫一個程序關于SPI必須注意的問題有:
1.字節(jié)的傳輸是從最高位(MSB)傳輸吻育,還是從最低位(LSB)傳輸呢念秧?這是由SPI.setBitOrder()函數進行設置的。
2.當數據不傳輸時布疼,時鐘線是高還是低摊趾?
3.觸發(fā)方式是上升沿觸發(fā)還是下降沿觸發(fā)呢?這個由SPI.setDataMode()函數進行設置游两。
4.SPI運行的速度是多快呢砾层?這個由SPI.setClockDivider()函數進行設置。
5.SPI.begin()作用是初始化SPI總線贱案。
6.SPI.end()作用是結束SPI傳輸肛炮,或者準確地說是禁止SPI總線工作。
7.SPI.transfer(val)作用是傳輸一個字節(jié)轰坊,這里要指出來的是val只能是字節(jié)铸董。