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

迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记

MH22D3芯片是兆讯公司新推出的基于cortex-M3内核的新一代芯片,专注于显示应用,其主频高达216Mhz,64KB SRAM,512KB Flash,开发UI应用游刃有余。详细介绍请看:MH22D3新一代显控应用性价比之王
新龙微基于MH22D3推出了“迅龙3号”开发板,方便快速评估和测试验证芯片性能,板载丰富资源,提供扩展接口:
在这里插入图片描述

开发板配套显示屏和电容TP,分辨率支持320x240,触摸屏支持5点触摸,报点率达100Hz。
触摸屏使用了海栎创比较高端的芯片CST328,网络上资料相对较少,驱动开发容易踩坑。
迅龙3号完整适配了这一款触摸芯片,提供完整的驱动源代码,代码下载地址:
迅龙3号开发板资料下载链接:
链接: https://pan.baidu.com/s/1vVlPRQDwgi_Ffdx5TAPTYw?pwd=ugjx 提取码: ugjx
在这里插入图片描述
下面记录了CST328开发过程中的一些问题:

  1. 初始化问题
    I2C接口和TP IO(复位和INT)初始化后读器件信息,会有不规律的中断信号。
    针对这种情况,要在完成读取信息后再打开中断信息,等待上报TP触摸信息
    在这里插入图片描述
  2. 寄存序号问题
    海栎创规格书《CST328数据手册V2.2.pdf》里面的数据有误:
    在这里插入图片描述
    正确的寄存器序号应该如下,特别是读芯片类型来判断芯片的时候很重要:
    在这里插入图片描述
    3.TP数据读取
    TP采用中断方式上报数据,读取程序一般是采用阻塞方式的,也就是说在读取寄存器数据期间,几乎是全部占用MCU的,所以速度一定要快,尽量降低对MCU的占用时间,下面是一个参考,可以根据自身板子的情况做微调和验证,确认最高通讯速率:
    I2C时钟:373Khz
    TP上报数据间隔:7.57ms
    读取7个寄存器时间:335us
    MCU占用率:0.335/7.57=4.3%
    在这里插入图片描述
  3. CST328和CST826系列的差异
    CST826的寄存器是1个字节,CST328的寄存器是2个字节,写的时候要分两次写入寄存器序号,读回来的数据byte0在前面,然后依次是byte1,byte2,byte3,和数据标准相对应。
static bool tp_reg_write(uint16_t reg_addr, uint8_t *reg_data, uint8_t cnt)
{I2C_ACK_STATUS ack;I2c_Start();I2c_WriteByte(TP_IIC_SLAVE_ADDR);I2c_WriteByte(reg_addr >> 8);  //registerI2c_WriteByte(reg_addr & 0xFF); //nackif((reg_data != NULL) && cnt){for ( uint16_t i = 0; i < cnt; i++ ){I2c_WriteByte(reg_data[i]);}}I2c_Stop();return true;
}

文章为原创,转载需注明出处,未经书面允许,请勿用于商业用途

相关文章:

迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记

MH22D3芯片是兆讯公司新推出的基于cortex-M3内核的新一代芯片&#xff0c;专注于显示应用&#xff0c;其主频高达216Mhz&#xff0c;64KB SRAM&#xff0c;512KB Flash&#xff0c;开发UI应用游刃有余。详细介绍请看&#xff1a;MH22D3新一代显控应用性价比之王 新龙微基于MH22…...

推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略

在 B2C 电商竞争激烈的市场环境中&#xff0c;精准推荐已成为提升用户体验、促进商品销售的关键。ZKmall 模板商城通过推荐算法工程化手段&#xff0c;深度挖掘用户数据价值&#xff0c;制定科学的用户分层推荐策略&#xff0c;实现 “千人千面” 的个性化推荐&#xff0c;帮助…...

你对于JVM底层的理解

JVM&#xff08;Java虚拟机&#xff09;是一个执行Java字节码的虚拟机&#xff0c;负责将Java程序的代码转化为能够在不同操作系统上运行的机器码。为了深入理解JVM的底层工作原理&#xff0c;可以从以下几个方面入手&#xff1a; 1. 类加载机制 JVM的类加载机制是其核心之一…...

深入探讨 Java 性能术语与优化实践

在 Java 开发中,性能优化是确保应用程序高效运行的关键。无论是构建实时处理系统还是大规模分布式服务,理解性能术语和分析方法都至关重要。本文将详细介绍 Java 性能中的核心术语,包括延迟(Latency)、吞吐量(Throughput)、利用率(Utilization)、效率(Efficiency)、…...

简单介绍Qt的属性子系统

深入理解Qt的属性系统 ​ 笔者最近正在大规模的开发Qt的项目和工程&#xff0c;这里笔者需要指出的是&#xff0c;这个玩意在最常规的Qt开发中是相对比较少用的&#xff0c;笔者也只是在Qt的QPropertyAnimation需要动画感知笔者设置的一个属性的时候方才知道这个东西的。因此&…...

【PmHub后端篇】PmHub中基于自定义注解和AOP的服务接口鉴权与内部认证实现

1 引言 在现代软件开发中&#xff0c;尤其是在微服务架构下&#xff0c;服务接口的鉴权和内部认证是保障系统安全的重要环节。本文将详细介绍PmHub中如何利用自定义注解和AOP&#xff08;面向切面编程&#xff09;实现服务接口的鉴权和内部认证&#xff0c;所涉及的技术知识点…...

消息~组件(群聊类型)ConcurrentHashMap发送

为什么选择ConcurrentHashMap&#xff1f; 在开发聊天应用时&#xff0c;我们需要存储和管理大量的聊天消息数据&#xff0c;这些数据会被多个线程频繁访问和修改。比如&#xff0c;当多个用户同时发送消息时&#xff0c;服务端需要同时处理这些消息的存储和查询。如果用普通的…...

掌控随心 - 服务网格的流量管理艺术 (Istio 实例)

掌控随心 - 服务网格的流量管理艺术 (Istio 实例) 想象一下,没有服务网格的时候,我们要实现像“将 1% 的用户流量导入到新版本应用”、“根据用户设备类型访问不同后端”、“模拟下游服务故障”这类高级流量策略,通常需要在代码、负载均衡器、API 网关等多个地方进行复杂且分…...

Github 2025-05-13 Python开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2025-05-13统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目10TypeScript项目1 ComfyUI&#xff1a;强大而模块化的稳定扩散GUI 创建周期&#xff1a;399 天开…...

Spring Boot 自动装配原理详解

Spring Boot 的自动装配&#xff08;Auto-Configuration&#xff09;是其核心特性之一&#xff0c;它极大地简化了 Spring 应用的配置过程。通过自动装配&#xff0c;Spring Boot 能够根据项目中的依赖&#xff08;例如&#xff0c;添加了 Spring Data JPA 依赖后自动配置数据库…...

Python核心数据类型全解析:字符串、列表、元组、字典与集合

导读&#xff1a; Python 是一门功能强大且灵活的编程语言&#xff0c;而其核心数据类型是构建高效程序的基础。本文深入剖析了 Python 的五大核心数据类型——字符串、列表、元组、字典和集合&#xff0c;结合实际应用场景与最佳实践&#xff0c;帮助读者全面掌握这些数据类型…...

索尼(sony)摄像机格式化后mp4的恢复方法

索尼(sony)的Alpha 7 Ⅳ系列绝对称的上是索尼的“全画幅标杆机型”&#xff0c;A7M4配备了3300万像素的CMOS&#xff0c;以及全新研发的全画幅背照式Exmor R™CMOS影像传感器&#xff0c;搭载BIONZ XR™影像处理器&#xff0c;与旗舰微单™Alpha 1如出一辙。下面我们来看看A7M4…...

Kubernetes容器运行时:Containerd vs Docker

Containerd 和 Docker 是容器技术领域的两个核心组件&#xff0c;它们在功能定位、架构设计、性能特点及适用场景上有显著差异。以下是两者的详细对比分析&#xff1a; 一、定位与功能 特性DockerContainerd核心定位完整的容器平台&#xff0c;包含构建、运行、编排等全生命周…...

免费专业级 PDF 处理!SolidPDF OCR 识别 + 精准转换批量处理

各位办公小能手们&#xff01;今天咱来聊聊一款超牛的软件——SolidConverterPDF。这可是个专业的多功能PDF处理工具&#xff0c;啥格式转换、文档编辑、扫描识别&#xff0c;它都能搞定&#xff01;下面我就给大伙详细唠唠它的厉害之处。 先说说它的核心功能。 一是PDF格式转换…...

电子电器架构 --- 区域计算架构(Zonal Compute)备战下一代电子电气架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...

API的学习总结(上)

在 Java 中&#xff0c;API 指的是 Java 提供的一系列类、接口、方法和工具&#xff0c;用于开发 Java 应用程序。Java API 是 Java 平台的核心组成部分&#xff0c;它提供了丰富的功能&#xff0c;包括基础数据类型、集合框架、输入输出、网络编程、多线程、数据库连接等。 核…...

Spring Boot之Web服务器的启动流程分析

如何判断创建哪种web容器&#xff1a;servlet&#xff1f;reactive&#xff1f; 我们在启动Spring Boot程序的时候&#xff0c;会使用SpringApplication.run方法来启动&#xff0c;在启动流程中首先要判断的就是需要启动什么类型的服务器&#xff0c;是servlet&#xff1f;或者…...

代码随想录算法训练营第六十三天| 图论9—卡码网47. 参加科学大会,94. 城市间货物运输 I

每日被新算法方式轰炸的一天&#xff0c;今天是dijkstra&#xff08;堆优化版&#xff09;以及Bellman_ford &#xff0c;尝试理解中&#xff0c;属于是只能照着代码大概说一下在干嘛。 47. 参加科学大会 https://kamacoder.com/problempage.php?pid1047 dijkstra&#xff08…...

RAG之大规模解析 PDF 文档全流程实战

PDF 文档在商业、学术和政府领域无处不在,蕴含着大量宝贵信息。然而,从 PDF 中提取结构化数据却面临着独特的挑战,尤其是在处理数千甚至数百万个文档时。本指南探讨了大规模解析 PDF 的策略和工具。 PDF解析挑战 PDF 的设计初衷是为了提供一致的视觉呈现,而非数据提取。这…...

uart16550详细说明

一、介绍 uart16550 ip core异步串行通信IP连接高性能的微控制器总线AXI,并为异步串行通信提供了 控制接口。软核设计连接了axilite接口。 二、特性 1.axilite接口用于寄存器访问和数据传输 2.16650串口和16450串口的软件和硬件寄存器都是兼容的 3.默认的core配置参数&#xf…...

Docker 环境安装(2025最新版)

Docker在主流的操作系统和云平台上都可以使用&#xff0c;包括Linux操作 系统&#xff08;如Ubuntu、 Debian、Rocky、Redhat等&#xff09;、MacOS操作系统和 Windows操作系统&#xff0c;以及AWS等云平 台。 Docker官网&#xff1a; https://docs.docker.com/ 配置宿主机网…...

Comparator不满足自反性错误,Comparison method violates its general contract

APP运行退出&#xff0c;跟踪信息 java.lang.IllegalArgumentException: Comparison method violates its general contract! Collections.sort(idxsList);//按score升序排列 查看idxs类 public int compareTo(Idxs o) { //重写compareTo方法 return (int) (this.g…...

[Java实战]Spring Boot 3 整合 Apache Shiro(二十一)

[Java实战]Spring Boot 3 整合 Apache Shiro&#xff08;二十一&#xff09; 引言 在复杂的业务系统中&#xff0c;安全控制&#xff08;认证、授权、加密&#xff09;是核心需求。相比于 Spring Security 的重量级设计&#xff0c;Apache Shiro 凭借其简洁的 API 和灵活的扩…...

如何界定合法收集数据?

首席数据官高鹏律师团队 在当今数字化时代&#xff0c;数据的价值日益凸显&#xff0c;而合法收集数据成为了企业、机构以及各类组织必须严守的关键准则。作为律师&#xff0c;深入理解并准确界定合法收集数据的范畴&#xff0c;对于保障各方权益、维护法律秩序至关重要。 一…...

Flask+HTML+Jquery 文件上传下载

HTML 代码&#xff1a; <div id"loadingIndicator" style"display:none;"><div class"spinner"></div> </div> <!-- 请求过程中转圈圈 --> <form action"" method"post" enctype"m…...

MapReduce打包运行

&#xff08;一&#xff09;maven打包 MapReduce是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff08;例如&#xff1a;jar…...

国产化Word处理控件Spire.Doc教程:如何使用 C# 从 Word 中提取图片

通过编程方式从 Word 文档中提取图片&#xff0c;可以用于自动化文档处理任务。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品&#xff0c;支持国产化&#xff0c;帮助企业高效构建文档处理的应用程序。本文将演示如何使用 C# 和 Spire.Doc for .NET 库从 Word 文件…...

07 mysql之DQL

一、什么是DQL DQL 是 SQL 的一部分,专门用于查询数据。核心命令是 SELECT,是最常用的命令,支持: 简单查询条件过滤排序与分页多表连接聚合统计子查询与复杂逻辑二、基础查询语法 SELECT 字段1, 字段2, ... FROM 表名 WHERE 条件表达式 GROUP BY 分组字段 HAVING 分组条件…...

spark-standalone

一、定义&#xff1a;Standalone 模式是一种独立的集群部署模式&#xff0c;自带完整服务&#xff0c;可单独部署到一个集群中&#xff0c;无需依赖任何其他资源管理系统。 二、配置步骤 1.和前面一样拉到hadoop101的/opt/module这个目录里面。 2.压缩 3.重命名为spark-sta…...

运行Spark程序-在shell中运行 --SparkConf 和 SparkContext

SparkConf 类用于配置 Spark 应用程序的各种参数。通过 SparkConf 类&#xff0c;你可以设置应用程序的名称、运行模式&#xff08;如本地模式、集群模式&#xff09;、资源分配&#xff08;如内存、CPU 核心数&#xff09;等。主要作用配置应用程序参数&#xff1a;可以设置 S…...

分割任务 - 数据增强

语义分割 - FCN &#xff1a; 数据预处理/数据增强 算法源码实例 base_size520 crop_size480 flip_prob0.5if train_val train:self.transforms transforms.Compose([transforms.RandomResize(int(base_size*0.5), int(base_size*2)),transforms.RandomHorizontalFlip(flip_…...

基于C#+MySQL实现(WinForm)企业设备使用信息管理系统

企业设备使用信息管理系统 引言 企业的设备管理在企业的生产制造和管理过程之中意义比较重大&#xff0c;明确企业的设备的产权和维护成本对于企业的成本控制和财务管理之中起到了重要的作用。随着市场竞争的加剧&#xff0c;现代企业所处的市场环境发生了深刻的变革&#xf…...

JavaScript异步编程 Async/Await 使用详解:从原理到最佳实践

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…...

Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》

文章目录 1. 引言&#xff1a;为什么相机是 3D 场景的“眼睛”&#xff1f;1.1 相机的核心作用1.2 常见相机类型概览 2. 相机基础参数解析2.1 通用属性2.2 相机坐标系 3. 详解常用相机类型3.1 自由相机&#xff08;FreeCamera&#xff09;3.2 弧形旋转相机&#xff08;ArcRotat…...

MCP Server多节点滚动升级一致性治理

飞书云文档原链接地址&#xff1a;https://ik3te1knhq.feishu.cn/wiki/W8ctwG2sAiPkrXkpl7ocP0g0njf [!TIP] MCP Server 多节点部署时&#xff0c;滚动发布&#xff0c;MCP Client 侧使用的 Client 连接保证使用的是最新的工具配置信息 后续推进&#xff1a;按比例使用旧、新实…...

多线程(二)

今天先来了解一个上一期的遗留概念 —— 前台线程与后台线程 一 . 前台线程与后台线程 大家应该多多少少都听过酒桌文化&#xff0c;咱们平常吃饭&#xff0c;座位次序是没有那么多讲究的&#xff0c;但是在跟领导吃饭&#xff0c;或者出席宴会和一些重要场所的饭局时&#…...

2025年,大模型LLM还有哪些可研究的方向?

近两年LLM在学术界与工业界的发展大家都有目共睹。到了今年&#xff0c;以预训练LLM为代表的大模型PK上半场已然结束&#xff0c;接下来就要进入下半场大模型2.0时代了。 那么在这新赛道&#xff0c;关于大模型我们还有什么可做的创新&#xff1f;要知道&#xff0c;如今的大模…...

VS打断点调试,无法命中断点或断点失效,解决方法

1.打开需要打断点的模块&#xff0c;点击属性&#xff0c;将C/C常规的调试信息格式改为程序数据库&#xff08;/Zi&#xff09; 2.将C/C的优化禁用&#xff08;/Od&#xff09; 3.将链接器中的生成调试信息改为生成调试信息&#xff08;/DEBUG&#xff09; 注&#xff1a;如果需…...

ELF文件详解

ELF 文件不仅仅是一个格式&#xff0c;它是 Linux 世界中程序的"灵魂容器"&#xff0c;承载着程序从编译到执行的整个生命周期。 今天咱们来聊一个看起来高深&#xff0c;实际上理解起来其实挺简单的话题—— ELF 文件。 不知道你有没有想过&#xff1a;我们敲下./…...

【学习笔记】Shell编程---流程控制语句

最近学了好多个流程控制语句&#xff0c;都有点混乱了&#xff0c;赶紧先把各种用法记录下来&#xff01; if 语句 语法格式&#xff1a; if 条件测试命令串 then 条件为真时执行的命令 else 条件为假时执行的命令 fi 以关键字if开头&#xff0c;后跟条件测试表达式&…...

TensorFlow 常见使用场景及开源项目实例

TensorFlow 常见使用场景及开源项目实例 摘要 本文详细介绍了 TensorFlow 在多个领域的典型应用及其对应的开源项目案例。涵盖了图像处理、自然语言处理、语音音频处理、推荐系统与时间序列预测、移动端与边缘计算以及生成式模型与创意应用等多方面内容&#xff0c;列举了大量…...

王炸组合!STL-VMD二次分解 + Informer-LSTM 并行预测模型

往期精彩内容&#xff1a; 单步预测-风速预测模型代码全家桶-CSDN博客 半天入门&#xff01;锂电池剩余寿命预测&#xff08;Python&#xff09;-CSDN博客 超强预测模型&#xff1a;二次分解-组合预测-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;BiLSTM-Attention预测模型…...

OpenCV进阶操作:风格迁移以及DNN模块解析

文章目录 前言一、风格迁移1、风格迁移是什么&#xff1f;2、步骤1&#xff09;训练2&#xff09;迁移 二、DNN模块1、什么是DNN模块2、DNN模块特点3、流程图4、图像预处理功能 三、案例实现1、数据预处理2、加载模型 总结 前言 风格迁移&#xff08;Style Transfer&#xff0…...

使用bitNet架构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、配置二、报错总结 前言 大型语言模型&#xff08;LLM&#xff09;面临的挑战&#xff1a;高能耗、高内存需求、部署门槛高。 微软提出 BitNet 架构&#x…...

OpenCV中的光流估计方法详解

文章目录 一、引言二、核心算法原理1. 光流法基本概念2. 算法实现步骤 三、代码实现详解1. 初始化设置2. 特征点检测3. 光流计算与轨迹绘制 四、实际应用效果五、优化方向六、结语 一、引言 在计算机视觉领域&#xff0c;运动目标跟踪是一个重要的研究方向&#xff0c;广泛应用…...

Java集合框架详解与使用场景示例

Java集合框架是Java标准库中一组用于存储和操作数据的接口和类。它提供了多种数据结构&#xff0c;每种数据结构都有其特定的用途和性能特点。在本文中&#xff0c;我们将详细介绍Java集合框架的主要组成部分&#xff1a;List、Set和Queue&#xff0c;并通过代码示例展示它们的…...

多模态融合【十九】——MRFS: Mutually Reinforcing Image Fusion and Segmentation

目录 一.摘要 二.Introduction 三. 背景与动机 四.方法 4.1. 概述 4.2. IGM-Att模块 4.3. PC-Att模块 4.4. 任务头 五.实验 5.1. 数据集与实现细节 5.2. 语义分割 5.3. 图像融合 5.4. 消融研究 5.5. IGM-Att和PC-Att的应用增益 5.6. 复杂度讨论 5.7. 目标检测的…...

音频转文字-在线工具包及使用记录

资料来源&#xff1a;https://zhuanlan.zhihu.com/p/269603431&#xff08;多种方案&#xff09; 视频教程&#xff1a;https://www.youtube.com/watch?vL1H5ov4WTBg https://github.com/openai/whisper // 创建虚拟环境 python -m venv myvnev// 激活虚拟环境 source myvne…...

集合-进阶

Collection collection的遍历方式 迭代器遍历 不依赖索引 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;public class mycollection {public static void main(String[] args) {//1.创建集合并添加元素Collection<String> co…...

【阿里云】阿里云 Ubuntu 服务器无法更新 systemd(Operation not permitted)的解决方法

零、前言 目前正在使用的Ubuntu服务器中&#xff0c;仅阿里云&#xff08;不止一台&#xff09;出现了这个问题&#xff0c;因此我判定是阿里云服务器独有的问题。如果你的服务器提供商不是阿里云&#xff0c;那么这篇文章可能对你没有帮助。 如果已经因为升级错误导致依赖冲突…...