• 物联网AI MicroPython学习之语法 SPI串行外设通信


    学物联网,来万物简单IoT物联网!!在这里插入图片描述

    SPI 介绍

    • 模块功能:
      SPI串行外设驱动

    接口说明

    SPI - 构建SPI对象

    • 函数原型:SPI(id, baudrate,polarity, phase,sck, mosi, miso)
    • 参数说明:
    参数类型必选参数?说明
    idintYspi通道,可为1或2
    baudrateintNspi 波特率
    polarityintNspi极性
    polarity是指 SCK 空闲时候的状态
    phaseenumNspi相位
    phase=0 表示SCK在第1个边沿开始取样
    phase=1 表示SCK在第2个边沿开始取样
    sckobjectYsck引脚对象
    mosiobjectYmosi引脚对象
    misoobjectYmiso引脚对象
    • 返回值:
      构建的SPI对象。

    SoftSPI - 构建软SPI对象

    • 函数原型:SoftSPI(baudrate,polarity, phase,sck, mosi, miso)
    • 参数说明:
    参数类型必选参数?说明
    baudrateintNspi 波特率
    polarityintNspi极性
    polarity是指 SCK 空闲时候的状态
    phaseenumNspi相位
    phase=0 表示SCK在第1个边沿开始取样
    phase=1 表示SCK在第2个边沿开始取样
    sckobjectYsck引脚对象
    mosiobjectYmosi引脚对象
    misoobjectYmiso引脚对象
    • 返回值:
      构建的软SPI对象。

    read - 从SPI接收指定字节数的数据

    • 函数原型:read(size)
    • 参数说明:
    参数类型必选参数?说明
    sizeintY读取指定字节长度数据
    • 返回值:
      buffer - 读取的数据区,长度为参数size

    write - 从SPI发送指定字节数的数据

    • 函数原型:write(buffer)
    • 参数说明:
    参数类型必选参数?说明
    bufferarray[]Y发送数据的缓冲区,期待发送的字节数为buffer的长度
    • 返回值:

    readinto - 从SPI接收指定字节数的数据,并放在缓冲区

    • 函数原型:readinto(buffer)
    • 参数说明:
    参数类型必选参数?说明
    bufferarray[]Y读取数据并存放在缓冲区
    • 返回值:
      buffer - 读取的数据区,长度为参数size

    write_readinto - SPI先发送数据再接收数据

    • 函数原型:write_readinto(sendbuf, recvbuf)
    • 参数说明:
    参数类型必选参数?说明
    sendbufarray[]Y发送数据的存储数组,期待发送的字节数为sendbuf的长度。
    recvbufarray[]Y接收数据的存储数组,期待接收的字节数为recvbuf的长度。
    • 返回值:
    • 案例代码
    from machine import Pin, SoftSPI, SPI
    
    # 软SPI创建对象
    spi = SoftSPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))
    # 硬件SPI创建对象
    spi = SPI(1, 10000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
    
    buf = bytearray(10)     # 建立缓冲区
    buf = spi.read(10)      # 读取10字节数据
    
    spi.readinto(buf)       # 读取数据并存放在缓冲区 (这里读取10个字节)
    
    spi.write(b'12345')     # 在MOSI引脚上写5字节数据
    
    sendbuf = bytearray(40)      # 建立缓冲区
    recvbuf = bytearray(40)      # 建立缓冲区
    spi.write_readinto(sendbuf, recvbuf) # 先发送再接收数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    XXL-JOB任务有效期支持实现方案
    Linux操作系统从BIOS到bootloader是如何运行的
    拖动排序与置顶的Java实现
    交互式电子表格Baserow
    太速科技-基于3U VPX的 Jetson Xavier NX GPU计算主板
    javaweb-SMBMS
    金仓数据库KingbaseES数据库参考手册(动态性能视图3.5. sys_stat_ssl )
    (5)Flink CEP SQL四种匹配模式效果演示
    使用wmic命令获得计算机硬件信息
    #VirtualBox虚拟机磁盘扩容#
  • 原文地址:https://blog.csdn.net/weixin_39363464/article/details/134482980