Ameba MicroPython: [RTL8722CSM] [RTL8722DM] SPI

class SPI – 串列外設介面
示例
SPI 作爲從設備(SALVE)接收消息:
• 準備材料: Ameba x 1, Arduino UNO x 1
• 步驟:
SPI是一種快速且强大的通訊協議,並通常在微處理器中被用來接受傳感器的數據或輸出圖像訊號。 在這個示例中將示範ameba如何透過MicroPython以從屬模式接收數據。
在通訊連接建立之前,需要先將以下代碼燒錄到Arduino UNO。
///////////////////////
//  SPI Master Write //
///////////////////////

#include 

void setup (void) {
   Serial.begin(115200); //set baud rate to 115200 for usart
   digitalWrite(SS, HIGH); // disable Slave Select
   SPI.begin ();
}

void loop (void) {
   char c;
   digitalWrite(SS, LOW); // enable Slave Select
   // send test string
   for (const char * p = "Hello, world!\r" ; c = *p; p++) {
      SPI.transfer(c);
      Serial.print(c);
   }
   Serial.println();
   digitalWrite(SS, HIGH); // disable Slave Select
   delay(2000);
}
Arduino UNO將以如下圖所示的連接方式和Ameba連接,我們使用第“0”組SPI作爲從機, 並將Arduino UNO當作SPI的主機。
1
然後複製以下代碼並粘貼到REPL的粘貼模式窗口,並等待代碼生效。
from machine import SPI
s1= SPI(0 , mode = SPI.SLAVE)
for i in range(14):
chr(s1.read())
API 文件
構造函數
SPI(unit_id [必填], baudrate [選填], polarity [選填], phase [選填], databits [選填], firstbit [選填], miso [選填], mosi [選填], sck [選填], mode [選填])
創建SPI對象並使用參數進行配置後,可以在SPI bus上讀寫數據。
• unit_id: 表示SPI硬件的ID, 如果保留空白,則採用默認值
• baudrate: SPI傳輸速度
• polarity: 決定SPI工作模式的變量 (不推薦使用)
• phase: 決定SPI工作模式的變量 (不推薦使用)
• databits: 數據字節數量
• Firstbit: 決定首字節是最高有效位 (MSB)或最低有效位 (LSB)
• miso: miso 引腳 (不推薦使用)
• mosi: mosi 引腳 (不推薦使用)
• sck: clock 引腳 (不推薦使用)
• mode: 決定MASTER 模式或是SLAVE 模式
Note: 所有選填參數的初始值設定如下表所示
參數 默認值
Baudrate
2000000 Hz
Polarity
Inactive_low
Phase
Toggle_middle
Databits
8
Firstbit
MSB
Miso
N.A.
Mosi
N.A.
Sck
N.A.
Mode
MASTER
目前Ameba D支援並提供2對SPI供使用
unit MOSI MISO SCK CS
0
PB_18
PB_19
PB_20
PB_21
1
PB_4
PB_5
PB_6
PB_7
Note: 上述所有SPI組號都支援主機模式(Master),但是僅有第0組適用於從機模式
 
方法
SPI.read()
此方法將等待並返還從SPI緩存區讀取的數據,方法適用於主設備和從設備使用。
 
SPI.write( value [必填])
該方法將輸入一個整數數值,並寫入SPI bus,方法適用於主設備和從設備使用。
• value: 將寫入SPI bus的一個整數數值
請先確認已安裝QQ通訊軟體