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 写入的问题
网上猛找把,没有,找不到,mpy不愧是没朋友的缩写,没有咋办,自己造! 此库特别适用那些rgb屏的初始化,大多用3线spi,好家伙rgb用了十多个引脚现在想起来省引脚了是吧,就差这…...
导致JVM内存泄露的ThreadLocal详解
1. ThreadLocal介绍 1.1 什么是ThreadLocal Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来…...
windows下关闭解除占用端口的进程
环境:windows 10 场景:启动某一应用程序时,提示其他应用已占用此端口,比如端口2425。 解决步骤: 1/3、打开windows的命令提示符,输入以下命令,查找占用此端口2425的PID号: # win…...
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(Python)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量(Python) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPI…...
版权与开源协议:一场创新与自由的边界之争
在数字时代的浪潮中,版权与开源协议作为知识产权领域的两大支柱,既相互依存又暗自较劲,共同绘制着科技创新的宏伟蓝图。本文将带您深入这场创新与自由的边界之争,探讨版权与开源协议之间的微妙关系,以及它们如何共同推…...
学生用的蓝牙耳机推荐有哪些?实测四款实力出众机型!
在当今数字化学习环境中,学生对蓝牙耳机的需求日益增长,无论是在线课程的学习、图书馆的集中阅读还是日常通勤中的音频资料复习,一款性能优异、舒适度高且价格合理的蓝牙耳机对学生来说至关重要,面对市场上琳琅满目的产品选择&…...
MIT6.824 课程-GFS
GFS 原文:https://zhuanlan.zhihu.com/p/113161014 搬运用于参考学习 概述 存储(Storage)是一个非常关键的抽象,用途广泛。 GFS 论文还提到了很多关于容错、备份和一致性的问题。 GFS 本身是 Google 内部一个很成功的实用系统&…...
力扣第200题 岛屿数量
前言 记录一下刷题历程 力扣第200题 岛屿数量 岛屿数量 原题目: 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平…...
协议头,wireshark,http
目录 协议头 ip头 udp头 mac层 网络工具 telnet wireshark Http 一、HTTP 协议介绍 二、HTTP 协议的工作过程 三、使用抓包工具抓取报文 四、获取到http请求报文: 五、http请求(request) (一)、认识URL 项…...
vscode ssh离线远程连接ubuntu调试
遇见问题: 1 ssh连接上无法启动服务器的虚拟环境; 2 ssh连接上启动服务器的虚拟环境后无法打断点; 对于问题需要参考下面连接安装python和debugy的插件拓展,并且配置json文件link。VSCode - 离线安装扩展python插件教程_vscode…...
Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号
步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置…...
元学习之应用案例
现在在做元学习的时候,我们最常拿来测 试元学习技术的任务叫做少样本图像分类,简单来讲就是每一个任务都只有几张图片,每一 个类别只有几张图片。比如我们使用图1的案例为例说明。现在分类的任务是分为三个 类别,每个类别都只有两…...
网络高级(学习)2024.9.10
目录 一、Modbus简介 1.起源 2.特点 3.应用场景 二、Modbus TCP协议 1.特点 2.协议格式 3.MBAP报文头 4.功能码 5.寄存器 (1)线圈寄存器,类比为开关量,每一个bit都对应一个信号的开关状态。 (2)…...
【软件全文档】项目概要设计说明书(2024实际项目Word原件)
一、 引言 (一) 编写目的 (二) 范围 (三) 文档约定 (四) 术语 二、 项目概要 (一) 建设背景 (二) 建设目标 (三࿰…...
震惊!国产数据库厂商减少了51家!
前面文章我提到国产数据库厂商实际上大部分都不赚钱,我估计国产目前国产数据库厂商利润为正的,目前不超过5家。 而经济寒冬,融资困难,那么对于很多厂商,尤其是全靠融资的数据库厂商来讲,这将变得极其困难。…...
[AI书籍分享]<AI时代,学什么,怎么学 - 和渊>
本文由Markdown语法编辑器编辑完成。 1, 背景: 本书是一位清华大学毕业的生物学博士,和渊老师,现就职于人大附中, 是一名一线的高中生物教师. 她之前已经写过几本关于教育类的书籍,而这本书,则是她针对当前, AI时代迅猛发展的背…...
鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)断点和媒体查询
文章目录 概述引入与使用流程媒体查询条件语法规则媒体类型(media-type)媒体逻辑操作(media-logic-operations)媒体特征(media-feature) 场景示例1、监听设备屏幕的方向(竖屏,横屏&a…...
1 Linux SSH安全加固_linux system-auth
 RabbitMQ详解
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理&…...
《华为 eNSP 模拟器安装教程》
1.电脑安装环境要求: 检查电脑是否安装过 eNSP 和依赖软件,如果有,请全部卸载。 安装软件列表: 2.软件安装: 安装 WinPcap: 打开安装包,单击【Next】 单击【I Agree】 单击【Install】 单击【…...
大模型岗位锐评:小白程序员转型指南 学习资源包免费领!收藏必备
本文深度剖析大模型领域的五大梯队岗位,从底层架构工程师到应用开发工程师,详细介绍了各岗位的日常工作、新手友好度、优势与避雷点。文章强调大模型领域人才缺口巨大,传统程序员具备转型优势,并提供了系统学习路线及实战资源&…...
图片去水印软件哪个好用?2026免费工具对比测评|电脑手机全覆盖
去水印已经成为日常生活中的高频需求。无论是保存心仪的社交媒体内容、优化电商产品图片,还是整理个人素材库,一张带着平台水印的图片往往无法直接使用。但面对市面上琳琅满目的去水印方案,很多人都有同样的疑问:到底哪款软件最实…...
从串口调试到上位机显示:手把手教你用Python写一个STM32 OV2640的JPEG图传接收端
从串口调试到上位机显示:Python实现STM32 OV2640的JPEG图传接收端全解析 当STM32成功通过OV2640摄像头捕获JPEG图像并通过串口发送后,如何稳定接收、解析并实时显示这些数据成为开发者面临的下一个挑战。本文将深入探讨如何用Python构建一个高效可靠的上…...
承压含水层中变流量抽水试验井流动力学模型与参数反演方法【附算法】
✨ 长期致力于变流量、抽水试验、参数反演、井损、粒子群优化算法研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)线性衰减变流量抽水试验理论模型与半…...
避开这些坑,你的蓝桥杯单片机程序也能拿高分:EEPROM存储与电压比较逻辑详解
蓝桥杯单片机高分秘籍:EEPROM存储与电压比较逻辑的深度优化 在蓝桥杯单片机竞赛中,能够完成基本功能只是及格线,真正决定成绩高低的是对细节的掌控和边界条件的处理。许多参赛者在EEPROM数据存储和复杂电压比较逻辑这两个关键环节频频失分&am…...
在线小说|基于java的小说阅读系统小程序(源码+数据库+文档)
在线小说系统|小说阅读系统|小说阅读系统小程序 目录 基于java的小说阅读系统小程序 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕…...
ZVM嵌入式实时虚拟机:在ARMv8-A上实现Linux与Zephyr的混合关键性系统
1. 项目概述与核心价值如果你正在从事嵌入式系统开发,尤其是涉及汽车电子、工业控制或5G通信设备这类对实时性和可靠性要求极高的领域,那么你肯定对“既要、又要、还要”的困境深有体会。我们常常需要在同一块硬件上,既要运行一个功能丰富、生…...
Perplexity生物检索黄金公式:[实体]+[关系]+[证据等级]+[时间窗]——经Nature子刊12篇方法论论文交叉验证
更多请点击: https://intelliparadigm.com 第一章:Perplexity生物检索黄金公式的提出与演进 Perplexity生物检索黄金公式(Perplexity-Bio Retrieval Golden Formula, PBRGF)并非源于单一论文,而是随着跨模态生物语义建…...
5G手机省电的秘密:一文搞懂NR C-DRX中的Inactivity Timer(附工作流程图解)
5G手机续航优化的核心技术:深入解析C-DRX中的Inactivity Timer机制 当你在咖啡厅刷社交媒体时,是否注意到手机屏幕熄灭后仍能即时收到消息?这种"随叫随到"的体验背后,是5G NR中一项精妙的省电技术——C-DRX(…...
用K210开发板驱动HUB75E点阵屏:从SPI时序到S型排列的完整避坑指南
用K210开发板驱动HUB75E点阵屏:从SPI时序到S型排列的完整避坑指南 在嵌入式开发领域,驱动LED点阵屏一直是兼具挑战性和实用性的课题。当K210这款高性能RISC-V开发板遇上HUB75E接口的大尺寸点阵屏,开发者往往会在SPI时序优化、内存管理和独特的…...
