[uPyCraft IDE]ESP32 3.2.5 SPI

查看: 188|回复: 0

[uPyCraft IDE] ESP32 3.2.5 SPI

[复制链接]

主模式 SPI串口通信,在物理层需要4根信号线: SCK,MOSI, MISO、CS(片选)。

class SPI(baudrate, polarity, phase, bits, firtbit, sck, mosi, miso)

baudrate:SCK时钟频率
    0 < baudrate ≤ 0x0FFFFFFF (十进制:0 < baudrate ≤ 2147483647)
polarity:极性
    0 — 时钟空闲时候的电平是低电平,所以当SCLK有效的时候,就是高电平
       1 — 时钟空闲时候的电平是高电平,所以当SCLK有效的时候,就是低电平
phase:相位 
    0 — 在第一时钟沿采样数据
       1 — 在第二时钟沿采样数据       
bits:传输数据位数
firtbit:数据传输的第一位(高位或低位)
sck, mosi, miso:spi总线引脚。
    Pin(0)、Pin(2)、Pin(4)、Pin(5)、Pin(9)、Pin(16~19)、Pin(21~23)、Pin(25~27)

定义SPI对象

示例:

from machine import SPI, Pin

spi = SPI(baudrate=100000, polarity=1, phase=0, sck=Pin(17), mosi=Pin(27), miso=Pin(18))

类函数

1. SPI.init(baudrate, polarity, phase, sck, mosi, miso)

函数说明:初始化SPI总线 。

baudrate:SCK时钟频率
    0 < baudrate ≤ 0x0FFFFFFF (十进制:0 < baudrate ≤ 2147483647)
polarity:极性
    0 — 时钟空闲时候的电平是低电平,所以当SCLK有效的时候,就是高电平
       1 — 时钟空闲时候的电平是高电平,所以当SCLK有效的时候,就是低电平
phase:相位 
    0 — 在第一时钟沿采样数据
       1 — 在第二时钟沿采样数据       
sck, mosi, miso:spi总线引脚。
    Pin(0)、Pin(2)、Pin(4)、Pin(5)、Pin(9)、Pin(16~19)、Pin(21~23)、Pin(25~27)

示例:

spi = SPI.init(baudrate=100000, polarity=1, phase=0, sck=Pin(17), mosi=Pin(27), miso=Pin(18))

2. SPI.deinit()

函数说明:关闭SPI。
示例:

spi.deinit()

3. SPI.write(buf)

函数说明:将 buf 中的所有数据写入到总线。
示例:

buf = bytearray([1,2,3,4,5,6,7,8])
spi.write(buf)

4. SPI.read(len, data=0x00)

函数说明:读取len个数据的同时写入len个data数据,以数组的形式返回读取到的数据。

len: 需要读取的字节长度
data: 写入的单字节数据

示例:

buf=bytearray(2) #申请长度为2的缓冲区
buf = spi.read(2, 0x00)

5. SPI.readinto(buf, data=0x00)

函数说明:读取buf.len个数据并存入buf中,同时写入buf.len个data数据,函数返回None。

buf: 数据缓冲区
data: 写入的单字节数据

6. SPI.write_readinto(write_buf, read_buf)

函数说明:写入write_buf并读取到 read_buf,写入并读取的长度为buf长度,要求两个缓冲区长度相同。

write_buf: 写数据缓冲区
read_buf: 读数据缓冲区

示例:

write_buf = bytearray([1, 2, 3, 4, 5, 6, 7, 8])
read_buf = bytearray(8)
spi.write_readinto (write_buf, read_buf)
print(read_buf)

  • SPI.MSB   = 0   — 数据的第一位设置为最高有效位
  • SPI.LSB   = 1   — 数据的第一位设置为最低有效位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail