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通讯软体