[RTL8722CSM] [RTL8722DM] SPI - 作为从设备接受消息

材料准备

  • AmebaD[AMB21 / AMB22] x 1

  • Arduino UNO x 1

范例说明

SPI是一种快速且强大的通讯协议,并通常在微处理器中被用来接受传感器的数据或输出图像讯号。在这个示例中将示范ameba如何透过MicroPython以从属模式接收数据。

在通讯连接建立之前,需要先将以下代码烧录到Arduino UNO。

 1///////////////////////
 2// SPI Master Write //
 3///////////////////////
 4#include <SPI.h>
 5void setup (void) {
 6             Serial.begin(115200); //set baud rate to 115200 for usart
 7             digitalWrite(SS, HIGH); // disable Slave Select
 8             SPI.begin ();
 9}
10void loop (void) {
11             char c;
12             digitalWrite(SS, LOW); // enable Slave Select
13             // send test string
14             for (const char * p = "Hello, world!\r" ; c = *p; p++) {
15             SPI.transfer(c);
16             Serial.print(c);
17                     }
18                Serial.println();
19             digitalWrite(SS, HIGH); // disable Slave Select
20             delay(2000);
21}

Arduino UNO将以如下图所示的连接方式和Ameba连接,我们使用第“0”组SPI作为从机, 并将Arduino UNO当作SPI的主机。

image1

然后复制以下代码并粘贴到REPL的粘贴模式窗口,并等待代码生效。

1from machine import SPI
2s1= SPI(0 , mode = SPI.SLAVE)
3for i in range(14):
4chr(s1.read())