自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhbi98 的技术 Blogs

这些文章详细的记录了个人业余时间所学习的内容,以及个人的技术方向所需要使用的技术,希望小伙伴们喜欢。

  • 博客(149)
  • 资源 (3)
  • 收藏
  • 关注

原创 万用表热电偶测温原理

热电偶测温原理及应用要点 热电偶是一种基于塞贝克效应的温度传感器,由两种不同金属材料组成,通过测量热端与冷端的温差电压来推算温度。关键要点包括: 热电偶测量的是热端与冷端的温差,而非绝对温度,必须配合冷端温度测量才能获得准确读数。 冷端(参考端)通常位于接线端子附近,可用NTC、PT100等温度传感器测量,或使用带补偿功能的专用芯片。 热电偶的优势在于高温测量(可达1000℃以上)、快速响应、耐恶劣环境和远距离测温能力,弥补了普通温度传感器的局限性。 塞贝克效应表明热电偶电压来自两种金属材料在温差下的电势差

2026-06-23 18:19:41 210

原创 示波器眼图算法分析

眼图测量中的关键算法挑战 本文深入分析了眼图测量中的三个核心算法问题:码元周期(UI)确定、时钟数据恢复(CDR)和边沿检测。首先阐述了UI的来源计算及其与调制方式的关系,详细介绍了边沿间隔统计、自相关和频域估计等多种码率估计方法。其次,解析了CDR的本质是构建数字锁相环(PLL)系统,说明了相位误差计算、环路滤波和时钟预测的实现原理,对比了常规CDR与Bang-Bang CDR的区别。最后,讨论了实际边沿检测面临的噪声、振铃等挑战,指出需要综合多规则判定而非简单阈值比较。这些算法直接影响眼图的准确性和测量

2026-06-22 12:06:55 209

原创 示波器眼图技术解析

眼图技术摘要 眼图是分析高速数字信号的重要工具,通过将大量码元波形按同一时间基准叠加形成统计图形。它广泛应用于USB、以太网等接口的信号质量评估。眼图的核心价值在于直观显示噪声、抖动、码间干扰等问题,帮助判断接收端能否稳定采样。 眼图的横轴表示一个码元周期内的相对时间(单位UI),纵轴显示电压,颜色亮度反映信号出现的概率密度。关键参数包括眼高(电压裕量)、眼宽(时间裕量)、交叉点位置等。眼图闭合可能由幅度不足、噪声、抖动、带宽限制等因素引起。 实现眼图功能需要高速采样、时钟恢复、二维直方图统计等技术。开发流

2026-06-21 13:36:43 159

原创 示波器采样率与存储深度关系

本文详细阐述了数字示波器中采样率与存储深度的核心关系及其实际应用。采样率决定时间分辨率(1/采样率=采样间隔),存储深度决定连续记录时间,二者遵循"存储深度=采样率×采集时间"的基本公式。重点分析了实际采样率可能低于标称值的多种情况(时基设置、通道数、采集模式等),以及采样不足导致的混叠、细节丢失等问题。文中通过具体实例说明了如何根据测量需求(如10MHz方波、偶发毛刺等)计算所需采样率和存储深度,并提供了触发策略、分段存储等解决方案。最后强调调试时应关注实时采样率而非插值效果,针对不同测量场景合理配置示波

2026-06-17 18:18:30 174

原创 LVGL8.3标签Label高级应用

LVGL8.3标签控件的高级应用主要包括:1)动态文本与静态文本的区别,动态文本会拷贝数据,而静态文本直接引用外部数据;2)文本颜色重绘功能,可通过特定命令改变部分文本颜色;3)6种长文本处理模式,包括自动扩展、换行、省略、滚动等不同显示方式;4)混合显示文字和图标的方法,可通过字体融合或组合Label实现。这些功能大大增强了标签控件的表现力和灵活性,开发者可根据需求选择合适的文本处理方式。

2026-05-30 15:07:49 254

原创 ROS2各种Xacro文件作用

ROS2机器人模型文件解析:xx.urdf.xacro定义机器人物理结构(连杆、关节),是主描述文件;xx.ros2_control.xacro配置硬件接口(驱动插件、命令/状态接口),被主文件包含;xx.srdf为MoveIt提供语义信息(关节组、碰撞规则)。三者协同工作:URDF提供物理模型,ros2_control实现硬件控制,SRDF支持运动规划,共同完成从模型显示到实际运动的完整流程。

2026-05-10 15:54:27 383

原创 VMWare 设置共享文件夹

VMWare共享文件夹设置指南 本文介绍了如何在VMWare虚拟机中设置共享文件夹以便主机与虚拟机之间传输文件。主要步骤包括:1)在VMWare设置中启用共享文件夹功能;2)指定主机上的共享目录路径;3)在虚拟机中通过mount命令挂载共享文件夹。设置完成后,用户可以在虚拟机中访问主机指定的共享目录,实现文件的双向传输。需要注意的是,每次虚拟机重启后都需要重新挂载共享文件夹才能继续使用该功能。

2026-03-29 12:09:29 1541

原创 CAN传输浮点数压缩

摘要:本文介绍了一种在CAN总线等通信协议中高效传输浮点数的方法。通过将浮点数值线性映射到有限位数的整型数据(如1-2字节),解决了协议中字节资源有限的问题。发送端使用公式将已知范围的浮点数转换为整型,接收端再还原为浮点数。文中提供了C语言实现代码,并举例说明该方法如何压缩5种参数到8字节数据帧中。该方法适用于嵌入式系统、传感器数据压缩等场景,但需确保收发双方约定相同的数值范围和数据位数。

2025-11-19 23:09:36 848

原创 C++与C如何相互调用

C++与C语言虽同源但编译规则不同,相互调用需特殊处理。文章通过示例演示了C++调用C函数时出现的"undefined reference"问题,分析发现C++的命名重整(name-mangling)机制导致函数名被修改。为解决这一问题,介绍了extern "C"语法,它能强制C++采用C命名约定进行编译。通过在头文件中使用条件编译(#ifdef __cplusplus)包裹extern "C"声明,可确保C编译器跳过该语法,而C++编译器正确处理

2025-06-15 20:51:17 1610

原创 RoboDK 自定义机器人

本文介绍了如何在RoboDK中自定义机器人模型的方法。主要内容包括:1)通过CAD软件处理3D模型后导入RoboDK,使用分割工具简化模型结构;2)配置机器人的DH参数和关节运动范围;3)验证机器人运动效果后导出.robot文件。该方法可使自制机器人获得与ABB等商用机器人相同的仿真和控制功能。文章详细说明了模型处理、参数设置和验证的完整流程,为机器人开发者提供了实用的技术指导。

2025-06-08 11:09:41 2538 4

原创 STM32移植U8G2

把对接屏幕驱动用到的这些自定义函数统一编写到一个文件中,文件可自行命名,例如命名为 u8g2_stm32.c,并添加到 u8g2 之外的用户目录。

2025-05-01 15:00:04 2727

原创 PCAN View 使用

如下图,第1步,点击波特率选择框右侧的编辑按钮。第2步点击相应调试器类型,这里以 CAN (SJA1000) 为例,其他类型方法相同。第3步,选择时钟频率,对于 CAN(SJA1000) 固定为 8MHz。第4步,点击添加一个波特率选项。第5步,点击新增波特率选项,再通过下图表格配置时序寄存器(BTR),BTR 寄存器值由两个字节组成,BTR 的每个数据位只由以下四个字段决定。(1) Prescaler 为时钟预分频系数,用于降低 CAN 时钟频率。

2025-04-19 16:06:06 11898

原创 阻抗匹配详解

在深入理解阻抗匹配概念之前,我们可以先来一起看一个现象,首先使用一个信号发生器输出一个脉宽为 50ns 的单脉冲信号,同时将信号接入示波器,此时在示波器的波形视图上可以看到这个仅有一个脉冲的信号,如下图。如果我们将信号接入示波器的同时将电缆延长数米到外部,并且延长后电缆末端保持悬空不接入任何东西,引出一段未接入任何东西的开路电缆,按照常识应该没有任何影响,然而实测是在原有脉冲旁边多出了一个类似脉冲,如下图。

2025-02-08 09:13:26 2425 3

原创 测量校准原理

办法还是有的,除了改进制造工艺之外,我们可以通过在传感器内部对其测量到的数据进行矫正计算来补足实际测量与真实值的误差,即通过二次计算处理让测量值接近真实值,这就是校准。值得一提的是,校准后也不能保证实际际测量值与真实值完全相同,校准只能降低测量误差,保证实际测量值与真实值的误差最小。因为在实际中即使校准后的测量结果依旧会受到其工作环境的影响,例如温度,气压,工程就是这么的艰难,即使顶级标准设备也无法做到完全不存在误差,但标准设备距离理论确实是最近的。

2025-01-26 19:46:20 1658 1

原创 函数在区间内连续性

我们已经知道函数在一个单点上连续的定义了,现在来把该定义扩展一下,如果函数在区间ab(a, b)ab上的每一点处都连续,那么它在该区间上连续。注意到:区间是开区间,所以fff实际上没有必要在端点xax=axa或xbx=bxb上连续,例如,如果fx1xx0fx1/xx0,那么fff在区间0∞(0,\infty)0∞上连续,即使f0f(0)f0无定义,该函数在区间−∞0−∞0上也连续。但在区间−22(−2, 2)

2024-11-30 14:41:00 2755

原创 函数在一点处连续

有了通俗描述的理解,现在可以知道连续问题的本质是 “极限的计算”,计算某一点邻域的极限和该点的函数值是否相同。同时在连续性方面函数的定义域也十分重要,必须去考量函数的定义域,要求函数在某一点上是有定义的。下面呢我们可以结合极限,结合函数定义域来给出函数连续性更精简,更精确一些的描述,并明确地要求以下三条成立:(1) 双侧极限lim⁡x→afxlimx→a​fx存在,即左极限x→a−x→a−和右极限x→ax→a相等(并且是有限的)。

2024-10-26 21:14:44 2064

原创 函数连续性导论

一般而言,函数的图像不需要遵守太多的要求,只有一点比较特殊,函数图像它必须满足垂线检验,这并没有要求特别多。只要满足垂线检验图像可以散落四处:这里有一部分,那里有一条垂直渐近线,或者图像是随心所欲地在各处散落任意个不连续的点。不过连续听着好像要求函数要满足连续的话就必须在所有地方连续(就类似于上图一样,函数曲线在任何地方保持延绵不断),在无穷远处也能连续。连续的字面意思是一个接一个,连贯的,意思大概就是延绵不断的,所以对于函数连续的定义不用怀疑就是简单的字面意思,函数的图像是不是处处相互连接的,

2024-10-26 21:11:33 1399

原创 了解网页 blob 链接

这种方法通常用于图片,音视视频这类可用 html 代码直接嵌入到其他网站的资源文件,防止你的图片音视视频被载入到别人的网页中,或防止他人直接访问原文件链接获取原文件。不过使用下载工具还是可以轻松下载,因为现在的下载工具一般会自动用你的域名构造一个引用地址。

2024-10-08 22:13:07 5355

原创 极限基本类型小结

在之前的文章中已经看过了极限的多种基本类型,下面展示一些各种基本类型的代表性的图像,通过观察下面的图像可以帮助我们回顾函数在趋近于某一点时函数值的行为(这也叫极限值),也生动的描述了各种极限的表现形式,所以这些图是很有用的,需要重点记忆。在右图中,左极限和右极限存在并相等,因此,双侧极限存在并等于左右极限值。时的双侧极限,见图 3-16,在左图中,左极限和右极限存在但不相。的行为是无关紧要的(也就是说,当讨论右极限时, 对于。时的左极限,见图 3-15,这时在。时的极限,见图 3-17。

2024-09-28 23:00:45 1566

原创 了解同步带选择同步带

为了方便从海量的型号中锁定具体的型号,将常将实际参数以代号表示(长度代号,型号,宽度代号),并且将这些代号拼接起来作为同步带的唯一的标记。例如:标记 980MXL200,其中980为长度代号,表示实际带长为 2489.2mm,其中MXL为型号,表示节距为 2.032mm,200为宽度代号,表示实际宽度为 50.8mm。

2024-08-21 22:52:28 17653 4

原创 极限两边夹定理

两边夹定理 (又称作夹逼定理) 说的是,如果一个函数f被夹在函数g和函数h之间,当x→a时,这两个函数g和h都收敛于同一个极限L,那么当x→a时,f也收敛于极限L。

2024-07-29 11:51:59 2536

原创 在无穷处的极限

之前文章的例子都是在接近一点xax=axa时的函数行为,在函数趋近于∞\infty∞情况下的极限,重要的是要理解当xxx变得非常大时,一个函数的行为如何。用更简便的语言来描述就是:我们感兴趣的是,研究当变量xxx趋于∞\infty∞时函数的行为,并且想写出lim⁡x→∞fxLx→∞lim​fxL并以此表示,当xxx很大的时候,fxf(x)fx变得非常接近于值LLL,并保持这种接近的状态。另外,xxx也可以趋近于−∞。

2024-07-14 22:05:38 2343

原创 LVGL8.3动画图像(太空人)

我们知道电影属于视频,而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式,也就是说动画本质是一系列照片。所以lvgl依照这样的思想而定义了动画图像,所以在lvgl中动画图像类似于普通的静态图像对象。唯一的区别是,动画图像设置了一个由多个源图像组成的数组,而不仅仅指定一个源图像。

2024-06-23 17:19:47 4188 5

原创 SerialChart上位机使用详解

软件分为三个区域:接收数据区,用于显示串口接收的数据。参数配置区,用于配置串口参数和显示参数。波形显示区,显示串口数据的波形。在参数配置区写入串口号,波特率,通道波形颜色等,然后点击运行按钮即可。当串口接收到数据时,接收数据区和波形显示区都会有相应的显示。该软件可以同时显示多个通道的波形,直接按照格式添加通道名称和对应的波形颜色即可。

2024-06-19 23:54:02 1731

原创 极限存在的条件

在左极限与又极限相关的内容中我们知道极限(也叫双侧极限)存在的充分必要条件是左右极限都存在且相等,否则极限不存在。所以这里要来详细的探讨一下在什么情况下函数会不存在极限。

2024-06-13 11:55:37 4892

原创 左极限与右极限

(1) 双侧极限在函数连续性判断方面具有重要的作用,需要重点记忆双侧极限和函数连续性的关系,后续会重点讲解。(2) 从本次的左右极限相关的内容也可以知道函数的定义域对极限具有一定的影响,后续会重点讲解。(3) 极限存在的充分必要条件是左极限和右极限都存在且相等,在分段函数方面尤其需要注意,很容易出现左极限和右极限不相等的情况。

2024-05-27 11:54:06 7445

原创 极限基本思想

在高等数学中极限是微积分的前置思想,没有极限的概念,那么微积分的理论将不复存在。极限也用于分析一个函数的连续性,可以说理解极限后理解函数的连续问题是轻而易举的事情。对于函数的连续性,不是什么高深的词汇就是字面意思,讲的就是这个函数的图像是否是持续不间断的,而间断则表示函数的图像存在断开的缺口那么函数就不是连续的状态了,所以极限必须花大量的时间去理解并掌握它。

2024-05-13 11:51:55 1996

原创 三角函数诱导公式

两角和(差)公式包括两角和差的正弦公式、两角和差的余弦公式、两角和差的正切公式。两角和与差的公式是三角函数恒等变形的基础,其他三角函数公式都是在此公式基础上变形得到的。

2024-04-30 09:10:00 3612

原创 函数定义域和值域

定义域(domain of definition)指自变量xxx的取值范围,是函数三要素(定义域、值域、对应法则)之一,对应法则的作用对象。求函数定义域主要包括三种题型:抽象函数,一般函数,函数应用题。定义一:设xxxyyy是两个变量,变量xxx的变化范围为DDD,如果对于每一个数x∈Dx \in Dx∈D,变量yyy遵照一定的法则总有确定的数值与之对应,则称yyy是xxx的函数,记作yfxy=f(x)yfxx∈Dx \in Dx∈Dx。

2024-04-29 20:12:03 7238

原创 Markdown+Latex数学符号集合

LaTeX(LATEX,音译 “拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

2024-03-20 20:36:55 1168

原创 无刷电机驱动详解

有刷电机和无刷电机字面上理解最大的区别就是有无电刷,实际上区别还有换向器,电刷和换向器的作用是什么?电刷负责在旋转部件与静止部件之间传导电流,换向器则利用旋转惯性周期性的改变线圈中电流的方向。所以有刷电机和无刷电机的本质区别是如何改变线圈中电流的方向,所以电刷和换向器实际不是必须的,只是一种改变电流方向的手段,可以采用其他的手段,只要能够快速周期性的改变线圈电流方向即可。所以无刷直流电动机采用半导体开关器件来实现改变线圈电流方向(电子换向),即用电子开关器件代替传统的接触式电刷和换向器。

2024-02-19 20:45:36 5699

原创 双因素认证TOTP原理

在上面讲到的设备级认证中除了短信验证方式之外,需要使用额外的认证设备银行卡或 U 盾,但是随时携带额外的不通用的认证设备是不便的,10 个银行使用需要额外携带 10 张额外银行卡,所以手机才是最好的替代品。手机与密码就成了最佳的双因素认证方式。其中短信验证码,这种方式很好理解,就是只有账号绑定的手机号能够收取到验证码,所以能够输入正确验证码的一般就是本人了,除非短信被人获取或伪造。除了短信验证码这种方式,还有一种 TOTP 的概念,下面详细来讲解一下 TOTP 的实现方式。

2024-01-27 16:27:07 2475

原创 MOSFET 驱动设计

(1) 从上述三个例子当中 MOSFET 驱动芯片会提供专用的管脚连接到 MOS 的栅极 G 和 源极 S 上。这是因为 MOS 管的导通需要控制极(G 极),而 G 极的电压是相对于 S 极的电压来控制的,如果 S 极没有接到 MOS 驱动芯片上,那么 G 极的电压就无法控制 MOS 管的导通,从而无法实现对负载的控制。(2) MOS 根据电路设计可以置于电路低侧或高侧,当然不排除低侧和高侧都有,所以要根据实际应用选择高侧或低侧驱动器芯片,或高低侧驱动器芯片同时驱动高侧和低侧开关管。

2023-12-10 21:58:07 9327

原创 详细了解 MOSFET 晶体管

(1) 耗尽型与增强型的主要区别在于耗尽型 MOS 管在栅极 G 不加电压时有导电沟道存在,而增强型 MOS 管只有在开启后,才会出现导电沟道。(2) 两者的控制方式也不一样,耗尽型 MOS 管的栅源电压 VGS 可以用正,零,负电压控制导通,而增强型 MOS 管则固定需要 VGS>VGS(th) 才能导通。(3) MOS 管改变栅源电压 VGS,实际是改变衬底靠近绝缘层处感应电荷的多少,从而控制漏极电流的大小。

2023-12-03 14:46:50 3646

原创 Linux 并发与竞争(二)

协调好 Linux 并发导致的竞争问题,除了可以使用原子操作,自旋锁(含包含读写锁,顺序锁)之外还可以使用信号量,互斥体。有这么多的机制可用,它们各有特点并不是相互取代的关系,这些里面因该没有一种机制是通用的,所以这些机制都要了解(如同学习编程语言,语法都要会,根据逻辑要求使用不同的语法,这就没有学习哪些语法就够了的说法),不用考虑学习哪种机制更好,根据场景结合这些机制的特点去使用这些机制。

2023-11-06 21:46:28 480

原创 Linux并发与竞争(一)

在线程中使用 “spin_lock_irqsave/spin_unlock_irqrestore”,在中断中使用 “spin_lock/spin_unlock”。

2023-10-29 09:43:25 615

原创 Linux驱动设备号分配与自动创建设备节点

对于 Linux 系统,为了识别和管理设备,每个设备便使用一个唯一的编号来标记设备,每个注册到内核的设备都需要一个编号,这个编号就是设备号,为了细分设备号分为主设备号和次设备号。由于 Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,所以我们查看文件的详细信息就可以看到设备的设备号。可以看到设备文件权限不再像普通文件那样为rwx了,而是变成了crw第一个字符为c的表示字符设备。

2023-10-04 22:01:28 1128

原创 Linux驱动__init和__exit的作用

_section__section可以看到了 “__init” 和 “__exit” 是一个宏定义,被定义为了 “__section” 宏定义,这个 “__section” 宏定义使用到了 GCC 编译器提供的 “__attribute__” 指令,这个指令用来设置一些变量或函数的属性,比如这里就是用来设置 section 这个属性。

2023-09-25 13:06:22 737

原创 Linux设备树OF操作函数

在 Linux 内核中用 struct device_node 表示设备树的数据结构,它是一种树形结构,该类型如下。#endif。

2023-09-18 22:33:29 562

原创 LVGL8.3 对象和内存详解

在创建 LVGL 的组件时,对应的创建组件的 create 函数会从 LVGL 的堆栈中分配一块内存去保存描述组件(位置,尺寸,颜色)样式信息的属性,属性的类型为lv_obj_t结构体,该结构体继承了结构体的内容。所以需要声明一个lv_obj_t *的指针指向保存组件样式属性这段内存的首地址,LVGL 的堆栈的大小在lv_conf.h0==048U1024U0==0。

2023-09-05 13:38:15 4318 14

WinDynamicDesktopPortable4.2.0.exe

WinDynamicDesktop Portable主题软件是一款能够让用户在Windows 10系统上也能使用macOS全新动态变化桌面壁纸的工具,Windows里面由WinDynamicDesktop来实现,壁纸全是3K到5K的超高清,并且占用资源极少。

2021-09-20

STM32F4XX_USART.rar

本驱动程序基于STM32F4XX同时基于STM32F4系列ST官方标准固件库,本程序适用于STM32F401,STM32F407, STM32F427,STM32F429。程序结构清晰,绝对够详细,修改对应的IO口即可使用。

2020-02-28

JLinkSTM32_flash_unlock.exe

产品芯片为了防止片内 flash 固件被读出逆向转译源码,所以一般会将 flash 锁住,这会导致 后续 flash 无法写入,所以可以使用这个工具来解锁 flash 使之可以再次写入。

2021-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除