自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 PCB布线——电源

开关电源模块的电感器件底下需避免走线,其所在层需挖空铜皮处理里(挖空至丝印位置),电感附近如有走线,需要对信号线包地处理,防止造成电磁干扰(EMI),这种干扰可能会导致信号质量下降。输入/输出路径尽量少打孔换层,打孔换层的位置须考虑滤波器件位置,输入应打孔在滤波器件之前,输出在滤波器件之后。反馈路径需要远离干扰源和大电流的平面上,一般采用10mi1以上的线连到输出滤波电容之后。开关电源模块内部的信号互联线尽量短而粗,一般加粗到10mi丨以上(但不能比焊盘粗)

2025-12-21 17:54:48 216

原创 STM32开发板电源设计( DCDC 电路和 LDO 电路 )

这个电源芯片其实就是电源稳压器。是一种在电源电压或者负载电流发生变化的时候,依然能够提供稳定输出电压的元件。其实LDO电路就是类似于通过滑动变阻器一样的东西,通过改变电阻值的大小来稳定电源的电压。· LDO外围器件少,电路简单,成本低,通常只需要一两个旁路电容· LDO负载响应快,输出纹波小,噪声小· LDO效率低,输入输出压差不能太大· LDO只能降压· LDO输出电流有限,最高可能就只有几A。

2025-12-09 18:46:50 1033

原创 PCB的布线原则

它通过在信号走线周围构建一个接地的金属墙,来模拟法拉第笼的效果,同时在外围地孔的内部还要放置一层禁止布线层,禁止布线层会组织在顶层和底层的一个铺铜,来保证晶振信号不会和外界信号产生互相干扰。粗的导线利于电流在主干道的流通,在PCB设计中,在25摄氏度时,对于铜厚为10z(盎司)的导线,10mil线宽能承载0.65A电流,40mil线宽能够承载2.3A电流。3)关键信号线优先:电源,模拟小信号,高速信号,时钟信号和同步信号等关键信号优先布线。关键元件优先,关键信号线优先,密度优先。

2025-12-02 15:00:04 804

原创 PCB的结构介绍

本文章是为了让我更加系统的了解PCB的结构,便于后期的PCB设计。

2025-11-27 13:41:49 498

原创 stm32——GPIO八种工作模式介绍

在应用STM32的GPIO功能的时候,常常只是使用引脚的上拉下拉功能,很多东西都是学了一段时间就忘了,所以这次打算对GPIO的工作模式进行系统的学习,并整理。从而提升自己对STM32的GPIO功能方面的理解。(这里我采用F1系列的单片机进行讲解)

2025-11-26 09:56:40 747

原创 c语言中的位掩码

在写stm32单片机代码的时候,使用GPIO_ReadInputDataBit()这个固件库函数。本人想读GPIO的16个引脚的电平,如果我们采用一个一个角赋值,就会出现代码很丑很容易错。:换芯片或库版本时,宏定义可能变,2.为什么写成“宏”而不是数字?1.数组里到底是什么?,直接传给库函数即可。3.怎么用这条数组?

2025-11-24 10:30:13 219

原创 C语言里面 << 和 | 的运用

在这里我做个比方:假如我得到了两个对,两个错,按照顺序排列就是“对对错错”,按照01的ascii码表示就是0x31 0x31 0x30 0x30,这样的话会浪费不必要的空间我要的是0x0C即0x1100,这样很短的东西就可以表示我想要的东西了。本人在写代码的时候,经常需要将1和0进行拼凑起来,因为我们在现实生活中用的都是10进制的数字,所以我们常常会将1和0与10进制的形式联想起来,那么有什么方式,当我们得到”对”,即1,得到“错”即0。在这里我拿 0<<1|1 这段代码进行举例说明。

2025-11-13 19:06:24 256

原创 串口通信——阻塞/中断/DMA及中断

MCU一个字节一个字节送给外设,让外设一个一个发过去,MCU与此同时不能干别的等着,和EXTI那节一开始讲的那个只会吃饭睡觉打豆豆的大冤种一样,等东西来了之后我再一个字节一个字节接收。

2025-10-16 09:08:26 278

原创 stm32中的位带操作的使用意义

位带操作是一种针对STM32微控制器寄存器中单个位的操作方式,它通过将寄存器的位映射到更大的内存空间(别名区域)来实现直接对单个位的读写,而无需读取整个寄存器的值进行位运算后再写回,这样可以减少CPU的负载,降低时钟周期的消耗,提高操作效率,尤其在对时间要求苛刻的场景下,如实时性要求高的程序逻辑,位带操作的优势更为明显。这些场景需要精确控制时序,位带操作能避免传统操作的“读取-修改-写回”过程,直接对单个位进行写入或读取,节省时钟周期,提升效率,确保时序精确性。如上对话帮我更好的理解为什么要有位带操作。

2025-09-18 23:21:36 641

原创 C#中的二维数组遍历

进行二维操作时,确实是按照从第一行到最后一行,每一行从第一列到最后一列的顺序进行遍历的。如果对值进行加1操作,不会影响循环的访问顺序。

2025-08-28 02:26:07 177

原创 C#和SQL Server Management Studio的连接

我们在使用C#和SQL Server Management Studio建立连接的过程中常常会出现,使用C#找不到本地数据库的情况,接下来我将解释如何使用C#和SQL Server Management Studio去建立连接。2.使用C#和SQL Server Management Studio建立连接。1.在SQL Server Management Studio中建立数据库。

2025-08-25 13:52:40 233

原创 C#——SQLServer数据库入门

找到我们创建的表右键选择前1000行,会出现我们刚刚创建的表格数据。是.NET框架中用于存储和操作数据的类,类似于一个内存中的数据库。:设置连接字符串,指定数据库服务器、数据库名称和身份验证方式。创建完整后,我们的TestDB会出现在数据库下的根目录下面。底层采用行集结构,每一行是一个独立的对象,类似于链表。对象,用于建立与SQL Server数据库的连接。:在完成数据操作后,应该关闭数据库连接,释放资源。这里可以填写数据库的名称和文件所创建的位置。创建SQL命令对象,并设置SQL命令和连接。

2025-08-25 13:36:25 942

原创 C#——SQLServer2022和的SQLServerManagementStudio安装

在网页上搜索SQLServer2022打开官网找到SQL Server 2022 Developer点击下载。安装完成后,我们安装SQLServerManagementStudio,点击按钮会弹窗网页。点击安装包选择基本类型的SQL Server2022。点击安装即可下载安装SQL Server2022。我们在这路找到下载SSMS 21点击下载。点击下载安装重启电脑即可。

2025-08-22 11:37:23 850

原创 C#——属性

方法来读取和修改字段值。与直接操作变量相比,属性能加入验证逻辑,控制访问权限,从而提升数据操作的安全性和灵活性。简单来说,属性就像一扇门,给数据访问加了一层保护和控制。在C#里,属性是类或结构体的成员,它封装了字段,通过。属性是类或结构体的成员,用于封装类的字段,提供对类数据的访问和修改。接下来我们要对下面的字段进行限定。访问器(获取属性值)和。访问器(设置属性值)。

2025-08-21 15:50:42 202

原创 Excel——设置打印的区域

在 Excel 中,设置不当的打印区域常导致内容打印时错位、缺失或排版不合理。如果不希望自己输入的内容显示在分页预览后的右下角,导致界面的不舒适,可以通过调整旦苑格的格式来完成,具体步骤如下。然后再选择视图->分页预览,即可实现指出现需要打印的区域,方便根据自己需要打印的内容进行调整和更改格式。然后就实现在excel选取出一块打印的区域,方便我们进行格式的调整和更改啦。表格中出现的这些虚线,是根据所选​。在其格式设置中输入";​在特定行或列之间——当你​。在 Excel 工具栏中​。

2025-07-23 15:43:52 369

原创 Modbus通讯协议

目的:当从设备无法处理请求时,会返回异常响应给主设备,其功能码是请求功能码的最高有效字节(MSB)被设置为 1,例如,若请求功能码是 0x03,则对应的异常响应功能码是 0x83。用于向主设备报告从设备遇到的错误情况,帮助主设备了解通信失败的原因。常见的异常功能码含义0x81(非法功能):从设备无法识别该请求功能码。这可能是由于主设备发送了错误的功能码,或者从设备不支持该功能码,类似于请求了一个不存在的功能,设备无法理解应该如何响应。0x82(非法数据地址)

2025-05-24 08:53:44 1216

原创 Pyqt中的sender()方法的意义

方案是否能区分按钮代码复用性灵活性不使用sender()不能低低使用sender()能高高通过sender()方法,可以在同一个槽函数中处理多个信号源,从而简化代码结构并提高代码的灵活性。

2025-03-09 15:13:18 505

原创 pyqt联合designer的运用和设置

PyQt Designer 是一个用于创建和设计 PyQt 应用程序用户界面的可视化工具。它允许用户通过拖放方式添加和排列各种控件,如按钮、文本框、滑块等,并设置它们的属性和样式,从而快速构建出美观且功能完整的 UI 界面。

2025-03-08 15:57:14 1054

原创 Python——计算机网络

端口是一个16位的数字,范围从0到65535。它用于标识应用程序或服务在某个IP地址上的具体位置。每个IP地址可以有多个端口,每个端口可以运行不同的应用程序或服务。通讯接口是一个实现通讯协议的接口,使得不同设备或应用程序能够按照协议的规定进行通信。通讯接口可以是软件接口(如API、库)或硬件接口(如USB、RS-232)。软件接口和硬件接口之间有什么关系呢?为什么会有软件接口和硬件接口?-CSDN博客通讯协议是一组规则和标准,用于定义两个或多个通信实体(如设备、应用程序)之间如何进行信息交换。

2025-03-07 15:33:32 1515

原创 通讯协议的分类及原因

通讯协议是计算机网络中用于控制和管理数据传输的规则,它定义了发送方和接收方之间的通信行为,以确保数据传输的安全性和正确性。通讯协议可以分为不同的类型,每种类型都有其特定的应用场景和特点。

2025-03-07 13:46:16 1388

原创 为什么会有软件接口和硬件接口?

软件接口是指在软件系统中定义的一组规则和方法,用于实现。

2025-03-07 12:52:28 802

原创 PyQt——信号与槽

在PyQt中,自定义信号是指开发者根据自己的需求定义的信号,用于PyQt应用程序中实现对象之间的通讯。自定义信号可以携带数据(如字符串,整数,列表等),并且可以在任何继承自QObject的类中定义和使用。自定义信号需要使用pyqtSignal装饰器定义,并且只能在继承自QObject的类中定义。QObject是什么东西?QObject是 Qt 框架的核心基类,提供了信号与槽机制、事件处理、对象管理和多线程支持等重要功能。在 PyQt 中,任何需要使用信号与槽机制的类都需要继承自QObject。通过继承。

2025-02-28 16:39:17 1755

原创 PyQt——窗口

在PyQt中,窗口(Window)是用户界面的核心组件,通常由QWidget或其子类(如 QMainWindow , QDialog 等)实现。窗口是用户与应用程序交互的主要界面,可以包含各种控件(如按钮,标签,输入框)和布局。控件和窗口的父类 ,自由度高(什么都东西都没有),没有划分菜单、工具栏、状态栏、主窗口 等区域。

2025-02-27 17:09:32 302

原创 PyQt——布局

在PyQt中,布局管理器(Layout Manager)是用于自动排列窗口小部件(Widgets)的工具,能够确保界面在窗口大小发生变化时保持合理的布局。布局管理器是构建动态,响应式用户界面的关键组件。在Qt里面布局分为四个大类:·QBoxLayout——将子窗口部件沿一条直线排列。两种:QHBoxLayout和QVBoxLayout。·QGridLayout——将窗口部件按行和列的网格形式排列。·QFormLayout——用于表单界面的布局管理器。·QStackLayout——用于创建堆叠界面。

2025-02-27 16:49:42 976

原创 C++中的指针

修饰位置含义示例说明指针指向的内容是常量,指针本身可以改变不允许修改指向的内容,但指针可以指向其他地址。指针本身是常量,内容可以改变不允许修改指针的地址,但可以修改内容。指针和内容都是常量不允许修改指针的地址或内容。

2025-02-21 15:23:32 988

原创 C++指针和解引用行为

int a = 10;// 指针 p 被初始化为 a 的地址if (p!, 等,可以自动管理内存并减少指针相关错误。

2025-02-21 15:19:05 587

原创 面向对象编程——多态和抽象类

指的是多种状态,在完成某个行为时,使用不同的对象会得到不同的状态。如:定义函数(方法),通过类型注解声明需要父类对象,实际传入子类对象进行工作,从而获得不同的工作状态。如上面代码所示,在我们Animal的父类中含有空的speak方法,然后下面的两个子类Dog和Cat继承至Animal父类同时在子类里面也都有speak方法,最后通过make_noise函数的调用展示了多态的行为。也就是。

2025-02-14 14:36:35 411

原创 面向对象编程——类型的注解

python在3.5版本的时候引入了类型注解,以方便静态类型检查工具,IDE等第三方工具。类型注解是在代码中涉及数据交互的地方,提供数据类型的注解(显示的说明)。

2025-02-14 13:09:42 394

原创 面向对象编程——继承中的复写

其实就是子类继承父类的成员属性和成员方法后,如果对其“不满意”,那么就可以进行复写,并且子类中对成员属性的修改不会影响父类中的成员属性。

2025-02-13 15:27:31 789

原创 python中的__eq__方法(比较运算符实现方法)

方法,你可以自定义对象的相等性逻辑,使得两个对象可以通过。在 Python 中,)比较运算符的特殊方法。是用于实现“等于”(

2025-02-13 14:18:59 609

原创 python中的__le__方法(小于等于比较符号方法)

它是一个特殊方法(也称为魔术方法),用于实现对象的“小于或等于”比较。在 Python 中,的缩写,代表“小于或等于”(

2025-02-13 14:15:23 351

原创 python中的__lt__ 方法(小于符号比较方法)

在python中,__lt__ 是用于实现“小于”比较的方法。它对应的是 < 运算符。如果你希望自定义对象支持 < 比较运算,可以通过实现 __lt__ 方法来实现。在这个__lt__方法中我们可以看见other这个参数,这个指的是另一个类对象。·传入参数 :other——另一个对象。·返回值 :Ture或Flase。·方法名 : __lt__

2025-02-13 14:08:35 709

原创 python中的__str__方法(字符串方法)

在python中,__str__方法用于返回一个友好,易于阅读的字符串,以便在打印对象时,能够得到有意义的输出,而不是默认的内存地址表示。对比上面的,使用了字符串方法和没有使用字符串方法的示例的输出结果,使用的输出结果清晰明了。因为内存地址没有多大作用,我们可以通过__str__方法,控制类转换为字符串的行为。的内存地址,这对于调试和日志记录并不友好。方法,直接打印对象时,输出可能是类似。方法可以提高代码的可读性和可维护性。

2025-02-13 13:12:19 353

原创 java——方法的重载

方法重载是 Java 中非常有用的一个特性,通过它可以在同一个类中定义多个同名方法,每个方法处理不同类型的参数。通过方法重载,可以提高代码的可读性和复用性,使代码更加简洁和易懂。

2025-02-11 14:57:39 419

原创 常见CMD命令

CMD(命令提示符)是windows操作系统中的一个强大工具,允许用户通过命令行界面执行各种操作。

2025-02-11 09:11:32 145

原创 面向对象编程——继承

MRO即方法解析顺序。在python的继承机制中,当一个类继承了其他类时,python会按照一定的顺序来查找方法。这个顺序就是MRO,它主要用于解决在多重继承场景下,当多个父类中有同名方法时,确定调用那个父类方法的规则。python使用c3线性化算法来确定MRO,就是会根据类的继承关系,生成一个从子类到父类的线性顺序列表。

2025-02-08 14:47:55 1079

原创 面向对象编程——object和type

type在 Python 中,object和type是非常重要的概念,它们与继承和类的分层结构密切相关。

2025-02-07 12:50:16 611

原创 Python函数中的*args和**kwargs

在python中,我们常常会看见*args和**kwargs这样的写法。其实这是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。这其实就是 Python 中可变参数的两种形式,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面。

2025-02-07 11:26:24 1303

转载 面向对象编程——描述器

在解释什么是「描述符」之前,我们先来看一个简单的例子。class A:x = 10这个例子非常简单,我们在类A中定义了一个类属性x,然后打印它的值。class Ten:return 10class A:x = Ten() # 属性换成了一个类仔细看,这次类属性x不再是一个具体的值,而是一个类Ten。Ten中定义了一个__get__方法,返回具体的值。在 Python 中,允许把一个类属性,托管给一个类,这个属性就是一个「描述符」。换句话说,「描述符」是一个「绑定行为」的属性。

2025-02-07 10:37:26 126

原创 面向对象编程——装饰器

装饰器本质上是一个函数,它接收一个函数或类作为参数,然后返回一个新的函数或类。通过装饰器,你可以在不修改原始代码的情况下,动态的添加功能。

2025-02-06 13:26:44 463

测试用的别管aaaaaa

测试用的别管aaaaaa

2025-05-20

安装包别管啊啊啊啊啊啊啊啊啊

安装包别管啊啊啊啊啊啊啊啊啊

2025-03-08

基于stm32c8t6的ch376u盘测试文件(测试通过)

基于stm32c8t6的ch376u盘测试文件(测试通过)

2024-03-01

空空如也

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

TA关注的人

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