当前位置: 首页 > 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】 单击【…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…...

Gitlab + Jenkins 实现 CICD

CICD 是持续集成&#xff08;Continuous Integration, CI&#xff09;和持续交付/部署&#xff08;Continuous Delivery/Deployment, CD&#xff09;的缩写&#xff0c;是现代软件开发中的一种自动化流程实践。下面介绍 Web 项目如何在代码提交到 Gitlab 后&#xff0c;自动发布…...