物联网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.mfbz.cn/a/162155.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

webAPP基础学习

###视觉基础 part-I ####1.面试中常见的像素问题 >什么是像素? *1.什么是px? px-虚拟像素,css像素的单位 px是一个相对单位,相对于设备像素而言 >相对性 a.相对于同一个设备,css像素的可变的 css像素物理像素>会受到缩放的影响 css像素缩放倍数*单个物理像…

django理解02 前后端分离中的问题

前后端分离相对于传统方式的问题 前后端数据交换的问题跨域问题 页面js往自身程序(django服务)发送请求,这是浏览器默认接受响应 而请求其它地方是浏览器认为存在潜在危险。自动隔离请求!!! 跨域问题的解决…

蓝桥杯 枚举

例题讲解 特别数的和 #include<iostream> using namespace std; bool ifspecial(int n){while(n){if(n%100||n%101||n%102||n%109){return true;} n/10;}return false; } int main(){int n;cin>>n;int sum0;for(int i1;i<n;i){if(ifspecial(i)){sumi;}}cout&l…

K-Means算法进行分类

已知数据集D中有9个数据点&#xff0c;分别是&#xff08;1,2&#xff09;&#xff0c;(2,3), (2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。采用K-Means算法进行聚类&#xff0c;k2&#xff0c;设初始中心点为&#xff08;1.1,2.2&#xff09;&#xff0c;&#xff08;2.3,3.…

LitCTF2023 - Reverse方向 全WP

文章目录 [LitCTF 2023]世界上最棒的程序员[LitCTF 2023]ez_XOR[LitCTF 2023]enbase64[LitCTF 2023]snake[LitCTF 2023]程序和人有一个能跑就行了[LitCTF 2023]debase64[LitCTF 2023]For AiurLitCTF{Pylon_OverCharge!!_We_Must_construc7_addition4l_pylons} [LitCTF 2023]世界…

【giszz笔记】产品设计标准流程【6】

目录 六、组织评审 1.评审的类型 2.评审的人员——谁参加评审 3.评审的核心——怎么提问 & 答案谁说了算 4.评审的流程——前中后三部曲 5.评审的标的——漂亮的靶子 6.避免被“烤”问的一些技巧 7.搞几次评审比较好 这个产品设计系列&#xff0c;陆陆续续写了6篇了…

JavaEE进阶(1)Java EE 简述(Java EE 发展历程、什么是Web开发? Web网站的工作流程、什么是框架?Java EE 框架学习概览)

目录 Java EE 简述 Java EE 发展历程 什么是Web开发? Web网站的工作流程 什么是框架 框架的定义 源于建筑行业的类比 框架的作用 Java EE 框架学习概览 1. Spring 2. Spring Boot 3. Spring MVC 4. Mybatis 框架之间的关系 Java EE 简述 Java EE是Java平台的企…

C#实现观察者模式

观察者模式是一种软件设计模式&#xff0c;当一个对象的状态发生变化时&#xff0c;其所有依赖者都会自动得到通知。 观察者模式也被称为“发布-订阅”模式&#xff0c;它定义了对象之间的一对多的依赖性&#xff0c;当一个对象状态改变时&#xff0c;所有依赖于它的对象都会得…

IO多路转接之select和poll

目录 一. IO多路转接的概念 二. 通过select实现IO多路转接 2.1 select接口 2.2 Select服务器的实现 2.3 select实现IO多路转接的优缺点 三. 通过poll实现IO多路转接 3.1 poll接口 3.2 Poll服务器的实现 3.3 poll实现IO多路转接的优缺点 四. 总结 一. IO多路转接的概念…

Python uiautomation获取微信内容!聊天记录、聊天列表、全都可获取

Python uiautomation 是一个用于自动化 GUI 测试和操作的库&#xff0c;它可以模拟用户操作来执行各种任务。 通过这个库&#xff0c;可以使用Python脚本模拟人工点击&#xff0c;人工操作界面。本文使用 Python uiautomation 进行微信电脑版的操作。 以下是本次实验的版本号。…

C语言从入门到精通之【其他运算符】

sizeof运算符和size_t sizeof运算符以字节为单位返回运算对象的大小。 例如 &#xff1a;sizeof(int) 打印转换说明&#xff0c;使用C99新增的**%zd转换说明 – 如果编译器不支持%zd&#xff0c;请将其改 成%u或%lu**。 C 语言规定&#xff0c;sizeof 返回 size_t 类型的值…

安装银河麒麟linux系统docker(docker-compose)环境,注意事项(一定能解决,有环境资源)

1:安装docker环境必须使用麒麟的版本如下 2:使用docker-compse up -d启动容器遇到的文件 故障1:如果运行docker-compose up 报“Cannot create redo log files because data files are corrupt or the database was not shut down cleanly after creating the data files”…

基于单片机教室人数实时检测系统仿真及源程序

一、系统方案 1、本设计采用51单片机作为主控器。 2、红外传感器检测进出人数&#xff0c;液晶1602显示。 3、按键最多容纳人数&#xff0c;烟雾报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void lcd_init() { lcd_write_com(0x38…

为什么选择B+树作为数据库索引结构?

背景 首先&#xff0c;来谈谈B树。为什么要使用B树&#xff1f;我们需要明白以下两个事实&#xff1a; 【事实1】 不同容量的存储器&#xff0c;访问速度差异悬殊。以磁盘和内存为例&#xff0c;访问磁盘的时间大概是ms级的&#xff0c;访问内存的时间大概是ns级的。有个形象…

mongodb使用简单文档

1、mongodb安装与卸载 1.1、安装 python -m pip install pymongo 或 pip install pymongo如果要安装指定版本&#xff1a; python -m pip install pymongo3.5.1对已有的版本进行升级&#xff1a; python -m pip install --upgrade pymongo1.2、卸载 pip uninstall pymongo…

性能测试常见问题总结

01 硬件上的性能瓶颈 指的是CPU、内存、I/O读写速率&#xff0c;磁盘空间方面的问题。 02 网络上的性能瓶颈 指的网络带宽&#xff0c;网络波动&#xff0c;延时&#xff0c;丢包等。 03 应用程序上的性能瓶颈 指的是开发人员新开发出来的应用程序。 04 数据库的性能瓶颈…

Arduino驱动LM35线性温度传感器(温湿度传感器)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 LM35半导体的温度传感器,可以用来对环境温度进行定性的检测。LM35半导体温度传感器是美国国家半导体公司生产的线性温度传感器。其测温范围是-40℃到150℃,灵敏度为10mV/℃,输出电压与温度成正比。

WebGl-Blender:建模 / 想象成形 / Blender概念词汇表 / 快捷键

一、理解Blender 欢迎来到Blender&#xff01;Blender是一款免费开源的3D创作套件。 使用Blender&#xff0c;您可以创建3D可视化效果&#xff0c;例如建模、静态图像&#xff0c;3D动画&#xff0c;VFX&#xff08;视觉特效&#xff09;快照和视频编辑。它非常适合那些受益于…

Visio是什么软件,有哪些好用的Visio平替软件推荐?

1. 什么是Visio&#xff1f; Visio是一款由微软开发的流程图和矢量绘图软件&#xff0c;它可以帮助用户创建各种类型的图表、图示和流程图&#xff0c;从而更好地呈现和传达信息。Visio的功能强大&#xff0c;适用于各种领域&#xff0c;如项目管理、系统设计、流程优化等。…

linux环境下启动应用的不同方式对比分析

大家好&#xff0c;我是G探险者。 平时我们在Linux环境下启动Java应用程序时。可能会选择在前台或后台运行它们。但是这两者启动命令的各种参数含义是什么意思呢&#xff0c;今天我们就来聊聊&#xff0c;并分析一下他们的特点。 1. 前台启动 参数&#xff1a; java: Java程…
最新文章