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

大模型岗位锐评:小白程序员转型指南 学习资源包免费领!收藏必备

本文深度剖析大模型领域的五大梯队岗位&#xff0c;从底层架构工程师到应用开发工程师&#xff0c;详细介绍了各岗位的日常工作、新手友好度、优势与避雷点。文章强调大模型领域人才缺口巨大&#xff0c;传统程序员具备转型优势&#xff0c;并提供了系统学习路线及实战资源&…...

图片去水印软件哪个好用?2026免费工具对比测评|电脑手机全覆盖

去水印已经成为日常生活中的高频需求。无论是保存心仪的社交媒体内容、优化电商产品图片&#xff0c;还是整理个人素材库&#xff0c;一张带着平台水印的图片往往无法直接使用。但面对市面上琳琅满目的去水印方案&#xff0c;很多人都有同样的疑问&#xff1a;到底哪款软件最实…...

从串口调试到上位机显示:手把手教你用Python写一个STM32 OV2640的JPEG图传接收端

从串口调试到上位机显示&#xff1a;Python实现STM32 OV2640的JPEG图传接收端全解析 当STM32成功通过OV2640摄像头捕获JPEG图像并通过串口发送后&#xff0c;如何稳定接收、解析并实时显示这些数据成为开发者面临的下一个挑战。本文将深入探讨如何用Python构建一个高效可靠的上…...

承压含水层中变流量抽水试验井流动力学模型与参数反演方法【附算法】

✨ 长期致力于变流量、抽水试验、参数反演、井损、粒子群优化算法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;线性衰减变流量抽水试验理论模型与半…...

避开这些坑,你的蓝桥杯单片机程序也能拿高分:EEPROM存储与电压比较逻辑详解

蓝桥杯单片机高分秘籍&#xff1a;EEPROM存储与电压比较逻辑的深度优化 在蓝桥杯单片机竞赛中&#xff0c;能够完成基本功能只是及格线&#xff0c;真正决定成绩高低的是对细节的掌控和边界条件的处理。许多参赛者在EEPROM数据存储和复杂电压比较逻辑这两个关键环节频频失分&am…...

在线小说|基于java的小说阅读系统小程序(源码+数据库+文档)

在线小说系统|小说阅读系统|小说阅读系统小程序 目录 基于java的小说阅读系统小程序 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕…...

ZVM嵌入式实时虚拟机:在ARMv8-A上实现Linux与Zephyr的混合关键性系统

1. 项目概述与核心价值如果你正在从事嵌入式系统开发&#xff0c;尤其是涉及汽车电子、工业控制或5G通信设备这类对实时性和可靠性要求极高的领域&#xff0c;那么你肯定对“既要、又要、还要”的困境深有体会。我们常常需要在同一块硬件上&#xff0c;既要运行一个功能丰富、生…...

Perplexity生物检索黄金公式:[实体]+[关系]+[证据等级]+[时间窗]——经Nature子刊12篇方法论论文交叉验证

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity生物检索黄金公式的提出与演进 Perplexity生物检索黄金公式&#xff08;Perplexity-Bio Retrieval Golden Formula, PBRGF&#xff09;并非源于单一论文&#xff0c;而是随着跨模态生物语义建…...

5G手机省电的秘密:一文搞懂NR C-DRX中的Inactivity Timer(附工作流程图解)

5G手机续航优化的核心技术&#xff1a;深入解析C-DRX中的Inactivity Timer机制 当你在咖啡厅刷社交媒体时&#xff0c;是否注意到手机屏幕熄灭后仍能即时收到消息&#xff1f;这种"随叫随到"的体验背后&#xff0c;是5G NR中一项精妙的省电技术——C-DRX&#xff08;…...

用K210开发板驱动HUB75E点阵屏:从SPI时序到S型排列的完整避坑指南

用K210开发板驱动HUB75E点阵屏&#xff1a;从SPI时序到S型排列的完整避坑指南 在嵌入式开发领域&#xff0c;驱动LED点阵屏一直是兼具挑战性和实用性的课题。当K210这款高性能RISC-V开发板遇上HUB75E接口的大尺寸点阵屏&#xff0c;开发者往往会在SPI时序优化、内存管理和独特的…...