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

micropython 3-wire spi 9bit 写入的问题

网上猛找把,没有,找不到,mpy不愧是没朋友的缩写,没有咋办,自己造!
此库特别适用那些rgb屏的初始化,大多用3线spi,好家伙rgb用了十多个引脚现在想起来省引脚了是吧,就差这一个引脚是吧!!!

from machine import Pin
import timeclass LOW_SPEED_SPI:def __init__(self,cs_pin,clk_pin,miso_pin):self.clk=Pin(clk_pin,Pin.OUT)self.miso=Pin(miso_pin,Pin.OUT)self.cs=Pin(cs_pin,Pin.OUT)def delay(self,t):time.sleep_us(t)def senddata(self,data):for i in range(0,8):if (data&0x80):self.miso.value(1)else:self.miso.value(0)data=data<<1self.clk.value(0)self.delay(1)self.clk.value(1)self.delay(1)def write_cmd(self,data):   #9bitself.cs.value(0)self.miso.value(0)self.clk.value(0)self.delay(1)self.clk.value(1)self.delay(1)self.senddata(data)self.cs.value(1)def write_data(self,data):self.cs.value(0)self.miso.value(1)self.clk.value(0)self.delay(1)self.clk.value(1)self.delay(1)self.senddata(data)self.cs.value(1)def init_st7701_spi(self):self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x13)self.write_cmd(0xEF)self.write_data(0x08)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x10)self.write_cmd(0xC0)self.write_data(0x4F)self.write_data(0x00)self.write_cmd(0xC1)self.write_data(0x10)self.write_data(0x02)self.write_cmd(0xC2)self.write_data(0x07)self.write_data(0x02)self.write_cmd(0xCC)self.write_data(0x10)self.write_cmd(0xB0)self.write_data(0x00)self.write_data(0x10)self.write_data(0x17)self.write_data(0x0D)self.write_data(0x11)self.write_data(0x06)self.write_data(0x05)self.write_data(0x08)self.write_data(0x07)self.write_data(0x1F)self.write_data(0x04)self.write_data(0x11)self.write_data(0x0E)self.write_data(0x29)self.write_data(0x30)self.write_data(0x1F)self.write_cmd(0xB1)self.write_data(0x00)self.write_data(0x0D)self.write_data(0x14)self.write_data(0x0E)self.write_data(0x11)self.write_data(0x06)self.write_data(0x04)self.write_data(0x08)self.write_data(0x08)self.write_data(0x20)self.write_data(0x05)self.write_data(0x13)self.write_data(0x13)self.write_data(0x26)self.write_data(0x30)self.write_data(0x1F)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x11)self.write_cmd(0xB0)self.write_data(0x65)self.write_cmd(0xB1)self.write_data(0x71)self.write_cmd(0xB2)self.write_data(0x87)self.write_cmd(0xB3)self.write_data(0x80)self.write_cmd(0xB5)self.write_data(0x4D)self.write_cmd(0xB7)self.write_data(0x85)self.write_cmd(0xB8)self.write_data(0x20)self.write_cmd(0xC1)self.write_data(0x78)self.write_cmd(0xC2)self.write_data(0x78)self.write_cmd(0xD0)self.write_data(0x88)self.write_cmd(0xEE)self.write_data(0x42)self.write_cmd(0xE0)self.write_data(0x00)self.write_data(0x00)self.write_data(0x02)self.write_cmd(0xE1)self.write_data(0x04)self.write_data(0xA0)self.write_data(0x06)self.write_data(0xA0)self.write_data(0x05)self.write_data(0xA0)self.write_data(0x07)self.write_data(0xA0)self.write_data(0x00)self.write_data(0x44)self.write_data(0x44)self.write_cmd(0xE2)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_cmd(0xE3)self.write_data(0x00)self.write_data(0x00)self.write_data(0x22)self.write_data(0x22)self.write_cmd(0xE4)self.write_data(0x44)self.write_data(0x44)self.write_cmd(0xE5)self.write_data(0x0C)self.write_data(0x90)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x0E)self.write_data(0x92)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x08)self.write_data(0x8C)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x0A)self.write_data(0x8E)self.write_data(0xA0)self.write_data(0xA0)self.write_cmd(0xE6)self.write_data(0x00)self.write_data(0x00)self.write_data(0x22)self.write_data(0x22)self.write_cmd(0xE7)self.write_data(0x44)self.write_data(0x44)self.write_cmd(0xE8)self.write_data(0x0D)self.write_data(0x91)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x0F)self.write_data(0x93)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x09)self.write_data(0x8D)self.write_data(0xA0)self.write_data(0xA0)self.write_data(0x0B)self.write_data(0x8F)self.write_data(0xA0)self.write_data(0xA0)self.write_cmd(0xEB)self.write_data(0x00)self.write_data(0x00)self.write_data(0xE4)self.write_data(0xE4)self.write_data(0x44)self.write_data(0x00)self.write_data(0x40)self.write_cmd(0xED)self.write_data(0xFF)self.write_data(0xF5)self.write_data(0x47)self.write_data(0x6F)self.write_data(0x0B)self.write_data(0xA1)self.write_data(0xAB)self.write_data(0xFF)self.write_data(0xFF)self.write_data(0xBA)self.write_data(0x1A)self.write_data(0xB0)self.write_data(0xF6)self.write_data(0x74)self.write_data(0x5F)self.write_data(0xFF)self.write_cmd(0xEF)self.write_data(0x08)self.write_data(0x08)self.write_data(0x08)self.write_data(0x45)self.write_data(0x3F)self.write_data(0x54)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x13)self.write_cmd(0xE6)self.write_data(0x16)self.write_cmd(0xE8)self.write_data(0x00)self.write_data(0x0E)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_cmd(0x11)self.delay(12)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x13)self.write_cmd(0xE8)self.write_data(0x00)self.write_data(0x0C)self.delay(1)self.write_cmd(0xE8)self.write_data(0x00)self.write_data(0x00)self.write_cmd(0xFF)self.write_data(0x77)self.write_data(0x01)self.write_data(0x00)self.write_data(0x00)self.write_data(0x00)self.write_cmd(0x29)self.write_cmd(0x3A)self.write_data(0x77)self.write_cmd(0x29)self.write_cmd(0x36)self.write_data(0x08)myspi=LOW_SPEED_SPI(cs_pin=38,clk_pin=46,miso_pin=45)
myspi.init_st7701_spi()

相关文章:

micropython 3-wire spi 9bit 写入的问题

网上猛找把&#xff0c;没有&#xff0c;找不到&#xff0c;mpy不愧是没朋友的缩写&#xff0c;没有咋办&#xff0c;自己造&#xff01; 此库特别适用那些rgb屏的初始化&#xff0c;大多用3线spi&#xff0c;好家伙rgb用了十多个引脚现在想起来省引脚了是吧&#xff0c;就差这…...

导致JVM内存泄露的ThreadLocal详解

1. ThreadLocal介绍 1.1 什么是ThreadLocal Java官方文档中的描述&#xff1a;ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问&#xff08;通过get和set方法访问&#xff09;时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来…...

windows下关闭解除占用端口的进程

环境&#xff1a;windows 10 场景&#xff1a;启动某一应用程序时&#xff0c;提示其他应用已占用此端口&#xff0c;比如端口2425。 解决步骤&#xff1a; 1/3、打开windows的命令提示符&#xff0c;输入以下命令&#xff0c;查找占用此端口2425的PID号&#xff1a; # win…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(Python)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量&#xff08;Python&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPI…...

版权与开源协议:一场创新与自由的边界之争

在数字时代的浪潮中&#xff0c;版权与开源协议作为知识产权领域的两大支柱&#xff0c;既相互依存又暗自较劲&#xff0c;共同绘制着科技创新的宏伟蓝图。本文将带您深入这场创新与自由的边界之争&#xff0c;探讨版权与开源协议之间的微妙关系&#xff0c;以及它们如何共同推…...

学生用的蓝牙耳机推荐有哪些?实测四款实力出众机型!

在当今数字化学习环境中&#xff0c;学生对蓝牙耳机的需求日益增长&#xff0c;无论是在线课程的学习、图书馆的集中阅读还是日常通勤中的音频资料复习&#xff0c;一款性能优异、舒适度高且价格合理的蓝牙耳机对学生来说至关重要&#xff0c;面对市场上琳琅满目的产品选择&…...

MIT6.824 课程-GFS

GFS 原文&#xff1a;https://zhuanlan.zhihu.com/p/113161014 搬运用于参考学习 概述 存储&#xff08;Storage&#xff09;是一个非常关键的抽象&#xff0c;用途广泛。 GFS 论文还提到了很多关于容错、备份和一致性的问题。 GFS 本身是 Google 内部一个很成功的实用系统&…...

力扣第200题 岛屿数量

前言 记录一下刷题历程 力扣第200题 岛屿数量 岛屿数量 原题目&#xff1a; 给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平…...

协议头,wireshark,http

目录 协议头 ip头 udp头 mac层 网络工具 telnet wireshark Http 一、HTTP 协议介绍 二、HTTP 协议的工作过程 三、使用抓包工具抓取报文 四、获取到http请求报文&#xff1a; 五、http请求&#xff08;request&#xff09; &#xff08;一&#xff09;、认识URL 项…...

vscode ssh离线远程连接ubuntu调试

遇见问题&#xff1a; 1 ssh连接上无法启动服务器的虚拟环境&#xff1b; 2 ssh连接上启动服务器的虚拟环境后无法打断点&#xff1b; 对于问题需要参考下面连接安装python和debugy的插件拓展&#xff0c;并且配置json文件link。VSCode - 离线安装扩展python插件教程_vscode…...

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1&#xff1a;安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件&#xff0c;完成后可能需要重启 Jenkins。 步骤 2&#xff1a;配置…...

元学习之应用案例

现在在做元学习的时候&#xff0c;我们最常拿来测 试元学习技术的任务叫做少样本图像分类&#xff0c;简单来讲就是每一个任务都只有几张图片&#xff0c;每一 个类别只有几张图片。比如我们使用图1的案例为例说明。现在分类的任务是分为三个 类别&#xff0c;每个类别都只有两…...

网络高级(学习)2024.9.10

目录 一、Modbus简介 1.起源 2.特点 3.应用场景 二、Modbus TCP协议 1.特点 2.协议格式 3.MBAP报文头 4.功能码 5.寄存器 &#xff08;1&#xff09;线圈寄存器&#xff0c;类比为开关量&#xff0c;每一个bit都对应一个信号的开关状态。 &#xff08;2&#xff09…...

【软件全文档】项目概要设计说明书(2024实际项目Word原件)

一、 引言 &#xff08;一&#xff09; 编写目的 &#xff08;二&#xff09; 范围 &#xff08;三&#xff09; 文档约定 &#xff08;四&#xff09; 术语 二、 项目概要 &#xff08;一&#xff09; 建设背景 &#xff08;二&#xff09; 建设目标 &#xff08;三&#xff0…...

震惊!国产数据库厂商减少了51家!

前面文章我提到国产数据库厂商实际上大部分都不赚钱&#xff0c;我估计国产目前国产数据库厂商利润为正的&#xff0c;目前不超过5家。 而经济寒冬&#xff0c;融资困难&#xff0c;那么对于很多厂商&#xff0c;尤其是全靠融资的数据库厂商来讲&#xff0c;这将变得极其困难。…...

[AI书籍分享]<AI时代,学什么,怎么学 - 和渊>

本文由Markdown语法编辑器编辑完成。 1, 背景: 本书是一位清华大学毕业的生物学博士&#xff0c;和渊老师&#xff0c;现就职于人大附中, 是一名一线的高中生物教师. 她之前已经写过几本关于教育类的书籍&#xff0c;而这本书&#xff0c;则是她针对当前, AI时代迅猛发展的背…...

鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)断点和媒体查询

文章目录 概述引入与使用流程媒体查询条件语法规则媒体类型&#xff08;media-type&#xff09;媒体逻辑操作&#xff08;media-logic-operations&#xff09;媒体特征&#xff08;media-feature&#xff09; 场景示例1、监听设备屏幕的方向&#xff08;竖屏&#xff0c;横屏&a…...

1 Linux SSH安全加固_linux system-auth

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201117150524918.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center) ![在这里插入图片描述](https://…...

SpringBoot学习(8)RabbitMQ详解

RabbitMQ 即一个消息队列&#xff0c;主要是用来实现应用程序的异步和解耦&#xff0c;同时也能起到消息缓冲&#xff0c;消息分发的作用。 消息中间件最主要的作用是解耦&#xff0c;中间件最标准的用法是生产者生产消息传送到队列&#xff0c;消费者从队列中拿取消息并处理&…...

《华为 eNSP 模拟器安装教程》

1.电脑安装环境要求&#xff1a; 检查电脑是否安装过 eNSP 和依赖软件&#xff0c;如果有&#xff0c;请全部卸载。 安装软件列表&#xff1a; 2.软件安装&#xff1a; 安装 WinPcap&#xff1a; 打开安装包&#xff0c;单击【Next】 单击【I Agree】 单击【Install】 单击【…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...