当前位置: 首页 > news >正文

物联网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) # 先发送再接收数据
http://www.lryc.cn/news/239456.html

相关文章:

  • 电动汽车充放电V2G模型MATLAB代码
  • 【大数据Hive】hive 优化策略之job任务优化
  • OpenAI再次与Altman谈判;ChatGPT Voice正式上线
  • 【JS】Chapter15-高阶技巧
  • Google Chrome 任意文件读取 (CVE-2023-4357)漏洞
  • psql 模式(SCHEMA)
  • 网络吞吐量 公网带宽有关吗?
  • Linux设置静态IP
  • 六、Big Data Tools安装
  • 数据结构【DS】特殊二叉树
  • 【Spring Boot】如何在Linux系统中快速启动Spring Boot的jar包
  • 交替最小二乘法
  • 封面从这里取好啦
  • DM8共享集群DSC初始化DB实例报错
  • 大师学SwiftUI第18章Part1 - 图片选择器和相机
  • 【电子通识】USB3.0和USB2.0有什么区别?
  • 在VSCode创建vue项目,出现“因为在此系统上禁止运行脚本”问题
  • OpenCV快速入门:目标检测——轮廓检测、轮廓的距、点集拟合和二维码检测
  • 基于STM32的烟雾浓度检测报警仿真设计(仿真+程序+讲解视频)
  • Jenkins 下载安装
  • MySQL 事务的底层原理和 MVCC(二)
  • (C++)验证回文字符串
  • 代码随想录算法训练营第25天|216.组合总和III 17.电话号码的字母组合
  • Kotlin学习——hello kotlin 函数function 变量 类 + 泛型 + 继承
  • 打印lua输出日志
  • HTML新手入门笔记整理:HTML基本介绍
  • 梯度引导的分子生成扩散模型- GaUDI 评测
  • 2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析
  • 如何用cmd命令快速搭建FTP服务
  • 数据结构学习笔记——多维数组、矩阵与广义表