自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 啃书—以国产化光耦ORPC-847芯片手册为例

对其输出特性,首先看ICEO即集电极到发射极固定电流,在20V的情况下,只有100nA左右,其次看BVCEO即集电极向发射极击穿电压,当集电极对发射极的电压大于80V的时候可能会击穿三极管,所以需要再设计的时候注意;电流传输比也是光耦一个非常重要的参数,如图所示电流传输比(CTR:最低50%在IF=5mA,VCE =5V),最低为50%,以50%为例,输入电流为5mA的情况下,输出电流为5*50%=2.5mA。为此,我特地提炼了一套快速概览该款光耦核心特性的方法,这套技巧同样适用于探索其他类型的光耦器件。

2025-03-20 16:18:21 152

原创 串口调试助手的发射区和接收区如何定义串口通信协议ASCII或HEX详解

例如输入“Hello”,则发送的是“H”“e”“l”“l”“o”对应的ASCII码,即48,65,6C,6C,6F(十六进制)。例如接收到字节48,65,6C,6C,6F(十六进制),会显示为“Hello”。当接收到的数据是文本信息时,如设备返回的文本状态信息、错误提示等,便于用户直观地阅读和理解。适用于接收二进制数据或需要精确查看每个字节数值的场景,如分析设备返回的协议数据包、状态字节等。适用于发送二进制数据或需要精确控制每个字节数值的场景,如向设备发送特定格式的协议数据包、控制字节等。

2025-01-14 09:18:06 365

原创 一文解决CH340驱动对象名已经存在的问题,问题代码31

点击右键进属性可以看到设备状态,发现其显示错误代码31,即CH340驱动对象名已经存在,突然想起其可能是占据同一个端口号导致冲突造成的,即端口号不能重复。此时需要把COM端口号修改为与其他端口不同的端口号,再点击确定即可,为了不与本机已有的虚拟串口COM3以及COM5冲突,因此随机选择了COM7口。最终设备管理器端口选项中的黄色感叹号消失,同时点进属性验证一波, 发现设备状态运转正常。依此点击USB-SERIAL CH340->属性->高级。

2025-01-14 09:13:21 444

原创 TPS5430典型降压型电路分析(基于TPS5430DDAR)

L1电感用作储能和滤波用,与输出电容C3组成输出滤波网络,电感的计算公式如式1所示,根据实际需求降压到5V,因此选择15μH的电感,其中VOUT(MAX)为最大输出电压,可取输出电压,VIN(MAX)为最大输入电压,VOUT为输出电压,VIN输入电压,Kind为常数,根据规格书取0.2-0.3,IOUT为输出电流3A,FSW为固定开关频率500KHZ;R1和R2的数值可对输出电压进行设置,如式2所示,为了得到5V的输出电压,根据规格书的建议,将R1设置为10KΩ,则可得出R2的阻值为3.24KΩ;

2025-01-09 14:48:06 1155

原创 C++基础之do.....while语句的应用

在 do 和 while 之间的代码块是循环语句,它至少会被执行一次。在 while关键字后面的括号中的表达式是循环继续执行的条件。如果条件为真(非零),循环继续;如果条件为假(零),循环结束。do.....while循环是 C++ 中的一种基本循环控制结构,它允许代码块至少执行一次,然后在指定的条件为真的情况下重复执行。在这个例子中,循环体中的代码会计算 i 的当前值并将其加到 sum上,然后将 i加 1,直到循环到 i 大于 10。

2024-12-23 15:59:33 166

原创 LM2596典型降压型电路分析

CIN选择680μF的电容主要是为了减少输入电压的波动,起滤波作用,根据耐压需求,输入电容的耐压值至少为最大输出电容的1.5倍,因此对于12V输出,电容的耐压值至少为18V,但为了增加电路的容错性应选择更高耐压值25V的电容,可增加电容的使用寿命,同时输入电容的均方根电流值至少为负载电流的一半,即至少为1.5A,综合多方面考虑,680μF的电容在耐压值25V下可以满足条件;COUT选择220μF的电容,是为了使输出电压更加平滑,减少纹波,进而提供稳定的电源给负载。输出电压:DC 5V。

2024-12-23 14:09:29 1502

原创 C++基础之while语句

PS:(注意:在while()括号里面一定要填循环条件,例如while(num

2024-12-13 15:37:38 143

原创 C++基础之Switch语句

在C++中,switch语句是一种多分支选择结构,用于根据不同的条件执行不同的代码块。PS:(switch语句中的表达式必须是整型、字符型或枚举类型。

2024-11-29 11:31:31 267

原创 C++基础之三目运算符

PS:(三目运算符的优势在于其简洁性,它可以在一行代码中实现简单的条件判断。这个例子定义了两个整数a和b,以及一个用于存储较大值的变量max,使用三目运算符用于判断a和b哪个更大,最终将结果赋值给max。,在C++中是一个简洁的条件判断工具,可以通过三目运算符实现简单的判断。PS:(C++中三目运算符返回的是变量,可以继续进行赋值。如果表达式1的值为真,执行表达式2,并返回表达式2的结果。如果表达式1的值为假,执行表达式3,并返回表达式3的结果。三目运算符,也被称为。

2024-11-28 14:32:53 224

原创 AD软件如何快速切换三维视图,由2D切换至3D,以及如何恢复

在Altium Designer软件中,切换三维视图以及恢复二维视图的操作相对简单。

2024-11-28 11:02:52 4731

原创 C++基础之if语句如何运用及其规则

具体解释:如果 condition 为真(即1),则执行 {} 内的代码;如果 condition 为假(0),则跳过该代码块。在C++编程中,if语句是一种基本的控制流语句,用于根据条件判断来执行不同的代码块。PS:( condition 是一个表达式,其结果必须为布尔值(true 或 false)即0或1)

2024-11-25 15:24:31 307

原创 Keil 5常用Debug功能及方法简述

3->memory窗口,用于监控内存,可用来查看内存数据的变化,同样可以将变量添加到memory窗口中,观察它的值的变化,用法和watch窗口相似,可以实时监控内存的状态,包括数据的读写和变化,这对于发现内存泄漏、越界访问等问题非常有帮助;4->外设查看窗口,是调试最最最重要的一个窗口,用于查看CPU的片上外设以及内核外设的工作状态,通过该窗口,可以直观的监控与CPU相连的外设的行为,包括外设寄存器的读写操作等,这有助于排查外设相关的故障,确保外设正常工作。3->stop按钮,按住程序会停止运行。

2024-11-25 14:54:04 2143

原创 CubeMX生成工程如何裁剪加工,与正点原子HAL库例程对比

同时鼠标选中添加的文件夹,双击将BSP板级支持包的C文件以及正点原子提供的核心SYSTEM文件夹C代码添加进去,包括delay文件夹:存放延时相关的驱动代码,支持在os下面使用;经过对比,发现正点原子经过整理后的例程多了个Output文件夹,点进去后发现Output文件夹存放编译后生成的文件。同时keil工程中的文件夹,需要添加一个Drivers/BSP以及Drivers/SYSTEM文件夹,鼠标右键单击工程,选择add group选项,再将名字修改完毕即可。

2024-11-20 14:30:40 333

原创 HAL库中MSP回调--HAL_PPP_MspInit()与中断回调--HAL_PPP_Callback()的区别及一些学习见解

MSP回调是指与MCU相关的初始化回调函数,这些函数通常在HAL库的外设初始化函数中被调用,主要用于配置与MCU相关的外设资源,如GPIO、NVIC(嵌套向量中断控制器)和时钟等。中断回调在中断发生时被调用。当外设产生中断时,相应的共用中断处理函数如HAL_PPP_IRQHandler()会被触发,该函数会进一步调用一系列HAL_PPP_Callback()中断回调函数来处理中断,用户可根据不同的回调函数类型,编写对应的中断处理程序。:MSP回调在外设初始化时就会被调用,而中断回调在中断发生时才被调用。

2024-11-19 15:28:46 405

原创 数据通信的基础概念,串行、并行、半双工、全双工、同步异步的区分与定义

同步通信必须有同步时钟,传输信息量大,传输速率高,但传输设备复杂,技术要求高,在传输数据的同时,还必须传输时钟信号;异步通信不需要同步时钟,通信实现简单,设备简单,但传输速率不高,字符帧之间的间隙可以是任意的,每个字符的前后都要用一些数位来作为分隔位。与之相比,并行通信的传输速率较高,抗干扰能力较弱,通信距离较短,IO口资源占用较少,成本较高。同步通信:同步通信是指发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通信可以传送多个字符数据(一帧数据)。串行通信:数据逐位按照顺序依次传输。

2024-11-19 10:19:18 585

原创 STM32中中断和事件的区别

中断定义:当外部或内部发生某个事件时,CPU会立即暂停当前正在执行的程序,转而执行与该事件相对应的中断服务程序(ISR)。待中断服务程序执行完毕后,CPU再返回到被中断的程序处继续执行。工作原理:中断请求通过中断线发送到中断控制器(NVIC),NVIC根据中断优先级决定是否立即响应中断。一旦响应,CPU会保存当前程序的执行状态(即现场),然后跳转到中断服务程序的入口地址执行。中断服务程序执行完毕后,CPU会恢复之前保存的现场,并继续执行被中断的程序。事件。

2024-11-12 10:44:03 1041

原创 三极管放大状态/饱和状态和截止状态如何区分?三极管典型应用电路

该电路用一个NPN三极管(S8050)来驱动蜂鸣器,R65主要用于防止因三极管存在寄生电容,导致蜂鸣器出现误发声。驱动信号通过R64和R65间的电压获得,芯片上电时默认电平为低电平,故上电时蜂鸣器不会直接响起。当PF8输出高电平的时候,蜂鸣器将发声,当PF8输出低电平的时候,蜂鸣器停止发声。其中当三极管处于导通状态,是相对于截止而言的,导通包括放大和饱和状态;饱和状态:Vb>Ve,Vc

2024-11-12 10:38:16 1747

原创 AD如何制作原理图的模版、原理图模板绘制修改以及如何导入原理图模版

首先需要打开模板文件,在AD20中打开之前保存的原理图模板文件,注意需是.SchDot格式的文件,然后对其进行修改,根据自己的需要,依据上述步骤可对模板中的图纸大小、方向、栅格设置、信息栏内容等进行修改,修改结束后,保存模板文件。在AD中,可双击左键打开Properties设置对话框,设置默认模板,在Schematic选项下的General中,选择默认空白纸张模板。打开原理图,首先需要先确保该原理图的版面是干净的,即需要先移除当前的模板,依此点击设计->模板->移除当前模板,避免信息栏重叠,如下图所示。

2024-10-23 17:04:10 4754

原创 AD20如何在PCB中显示或隐藏铺铜

在查看PCB线路连接时,通常会遇到一种情况即一整块铺铜遮挡了视线,其会影响视觉效果,使得查找线路连接问题或进行布线分析变得更加困难。为了更有效地进行这些操作,通常需要先将铺铜暂时隐藏起来,以便清晰地看到下方的线路和连接。一旦确认了所需的信息或完成了相应的操作,再将原来的铺铜显示出来以恢复完整的PCB视图。本文提供了两种方式可对铺铜进行隐藏以及显示。

2024-09-24 10:59:17 2283

原创 STM32的八种GPIO的工作模式以及其应用场景

STM32的GPIO(General-Purpose Input/Output,通用输入输出)端口可以配置为八种不同的工作模式,每种模式都有其特定的应用场景。

2024-09-10 15:41:53 1504

原创 CubeMX新建工程详细步骤

查询MCU外围电路的原理图可得其外部高速晶振和外部低速晶振分别是:8MHz和32.768KHz,因此HSE时钟频率就是8MHz,LSE时钟频率就是32.768KHz。其时钟必须在其工作限定之内。PS:写在最前(本文是在深入参考了正点原子提供的STM32F407探索者指南的基础上,结合个人的学习心得与深入理解所撰写的。以PE5及PB5两个GPIO口点亮LED灯为例,配置其引脚功能,可在右下角搜索框中搜索需要的引脚。点击PF5及PB5,在弹出的下拉菜单中,选择IO口的功能为GPIO_Output。

2024-09-09 17:28:00 1808

原创 做嵌入式项目时如何选择合适的MCU,以stm32为例

针对不同的嵌入式项目,STM32芯片的选型是一个综合性的过程,需要考虑多个方面的因素以确保所选芯片能够满足项目的具体需求。

2024-09-06 14:46:59 2057

原创 C++基础之指针及结构体

指针:内存的地址;指针变量:保存了指针的变量;格式:类型名 *指针变量名指针的作用:可以通过指针间接访问内存内存编号一般是从0开始记录的,一般用十六进制数字表示可以利用指针变量保存地址&是取地址的意思。

2024-09-03 11:34:54 222

原创 C++基础之静态成员static及const修饰成员函数

静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员,静态成员分为:静态成员变量:(1)所有对象共享同一份数据(2)在编译阶段分配内存(3)类内声明,类外初始化静态成员函数:(1)所有对象共享同一个函数(2)静态成员函数只能访问静态成员变量。

2024-09-02 10:03:11 689

原创 AD20如何进行V-cut拼版

此时会看不见单板的外框尺寸,原因是AD20的拼板不能识别Keep-Out Layer层,需要转化为机械层1才可以识别到,单层显示模式下(快捷键SHIFT+S),框选出keepout层轮廓,依此按住(设计)Design->(板子形状)Board Shape->(根据板子外形生成线条)Create Primitives From Board Shape,再设置线宽和机械1层即可出现拼版的外框。这是因为新建的PCB是默认的二层板,需要拼版的PCB是四层板,所有会出现该警告,此时只需选择现在自动同步即可。

2024-08-30 16:45:15 2353

原创 C++基础之数组

2.数组类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};3.数组类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};4.数组类型 数组名[ ][列数] = {数据1,数据2,数据3,数据4};2.数据类型 数组名 [数组长度] = {值1,值2 ...};3.数据类型 数组名 [ ] = {值1,值2 ..};所谓数组,就是一个集合,里面存放了相同类型的数据元素。1.数组类型 数组名[行数][列数];特点1: 数组中的每个数据元素都是。

2024-08-30 09:51:44 444

原创 AD20如何导入CAD绘制好的奇形板框

在CAD绘制好图形后,应该点击保存,注意需要保存为AutoCAD 2010/LT2010 DXF(*.dxf)文件,这个版本的文件才能导入PCB里面,版本高了会不支持。在AD软件选择PCB页面,里面点击文件>导入>DXF/DWG,注意里面的比例。点击确定后,弹出一个警告,不需要去管它,点击ok即可。

2024-08-29 16:43:18 1325

原创 C++基础之算数运算、幅值运算以及逻辑运算

例:a=12,a +=2,a=a+2最后输出a=12+2=14。前置递增b=++a,先将a自身加1,再将a赋给b;后置递增b=a++,先将a赋给b,a再加1。后续的-=、/=、*=、%=都是一样的操作。“/”是除数运算,例如:10/3=3。“%”取模运算,例如:10%3=1。“前/后置递增运算”

2024-08-28 11:06:24 558

原创 AD20中GND、GGND、DGND与AGND的区别、数字电路与模拟电路的区别以及layout需要注意的细节

GGND则是一种特殊的接地技术,用于防止信号干扰和提高电路的灵敏度,主要用于将多个电路部分的地线连接在一起,形成一个共同的地回路。AGND主要用于模拟电路,包括传感器、放大器、滤波器等,一般来说音频信号,耳机,miC 功放这类信号属于模拟信号,同时对应的回流GND 属于模拟地即AGND。两者都是作为零电位的公共基准地,但由于数字电路和模拟电路的工作特性和对地要求不同,它们需要分开处理。因此,在对PCB布局的时候,可以把数字电路和模拟电路分开来放置,这样在电源层和地层中将其分割开,减少信号之间的相互干扰。

2024-08-14 16:42:36 4721 2

原创 AD20软件PCB设计规则的设置

电源线和信号线一般是有区别的,因此为了layout方便,最好再自行设计一个规则,再设计界面点击width->新规则,再命名一下PWR以作区分。同时十字连接的高级选项,包括焊盘的连接方式以及过孔的连接方式,为防止过孔使用十字连接将平面打断,如下图,因此选择将过孔连接方式设置为全连接。1A 15mil、2A 50mil、3A 100mil,倘若大于3A,就需要铺铜或开窗处理。正片层铺铜时,倘若SMT贴片时,同时考虑到载流问题,推荐连接方式为直连。倘若为手工焊时,推荐十字连接,方便焊接。

2024-08-12 16:06:49 4082

原创 AD20如何批量放置过孔

可以点击constrain area按钮选项在自己规定的区域放置过孔,一般是24mil以及12mil。栅格一般放150个mil。然后选择层、GND网络。注意//需要铺完铜才能继续操作。依此点击工具、(缝合孔)

2024-08-09 14:26:58 1631

原创 AD20如何批量修改丝印的大小

然后再右侧修改丝印的高和宽,一般将高选择为10mil,宽选择为2个mil。PS:一般推荐字宽/字高尺寸为2/10mil、4/25mil、5/30mil、6/45mil。在Object Specifics里面选择Designgnator,将Any选项选择为same。选择想修改的元器件丝印,右击以下鼠标,出现如下界面。

2024-08-08 08:43:39 1378

原创 AD20如何批量修改元器件封装

依此点击Tools→Footpring Manage(快捷键TG)打开封装管理器。选择已有的封装库,即可在已有的PCB封装库中选择合适的封装对其进行替换。选中需要修改的元器件,点击(编辑)edit按钮。

2024-08-07 17:14:51 1399

原创 AD20对元器件进行批量命名

设置一下,依此点击更新更改列表、接受更改创建即可。最后验证变更、执行变更,即可完成批量命名。依次点开 工具→标注→原理图标注。

2024-08-07 17:01:46 1210

原创 AD20常用快捷键

如果想整体去掉一条线,在PCB画面下,按住Ctrl+H,出现十字光标,将光标移动到连线经过的任意线上,单击鼠标左键,选中会高亮,按delete删除。快捷键S+N选中网络,在右侧仅选中tracks(走线)即可在右侧小弹窗里面设置走线的宽度等。在垂直分割状态下选中原理图的模块,返回PCB图空白处按住Ctrl+E,就会出现对应的器件。快捷键P+L将数字地以及模拟地进行分割(将数字地和模拟地进行隔离)。Ctrl+W键可以在原理图中快速拖动线。Ctrl+F查找文本,查找VCC方便。Ctrl+shift+L向左对齐。

2024-08-07 16:48:53 1039

友善串口调试助手serial-port-utility-538-1001.zip

友善串口调试助手是一款功能强大的串口调试工具,其不仅支持常用的波特率范围,还支持自定义波特率,包括非标准波特率,最高可支8000000以上波特率(与串口硬件有关);软件能够自动识别并列出所有可用的COM端口,方便用户选择;支持以ASCII码或十六进制接收或发送任何数据或字符(包括中文),并可以任意设定自动发送周期;能够将接收到的数据保存成文本文件,同时支持发送任意大小的文本文件;多串口支持:支持多串口调试,方便用户同时处理多个串口通信任务;接收数据时,光标始终显示在最后一行或指定行;实时显示收发数据字节大小以及串口状态;自由控制数据显示区域,可显示高达1000000行历史数据。

2025-01-14

CH341SER.ZIP

最新的CH340驱动,下载于南京沁恒微电子有限公司官网,有需要的可以下载。

2025-01-14

Cubemx+HAL+Stm32F407VGT6定时器PWM.rar

本项目使用STM32CubeMX和HAL库来实现一个通用定时器实验,特别是将定时器14通道一配置为PWM输出,从而实现呼吸灯效果。MCU主控芯片为STM32F407VGT6,其是一款高性能的32位微控制器,广泛应用于嵌入式系统设计,而STM32CubeMX是STMicroelectronics提供的配置和代码生成工具,可以简化MCU的初始化过程。

2024-12-26

WinMerge-2.16.44-x64-Setup.exe

WinMerge是一款运行于Windows系统下的免费开源的文件比较/合并工具,其能够进行文件比较:WinMerge支持两个或三个文件的同时比较,能够高亮显示它们之间的差异,并提供易于理解的视图来帮助用户识别这些差异;文件夹比较:除了文件比较外,WinMerge还可以比较文件夹的内容,包括文件大小、日期等,并以树状视图显示比较结果;图像比较:对于图像文件,WinMerge支持多种类型的图像比较,可以通过方块高亮显示图像之间的差异,并支持调节方块大小、透明度以及是否闪烁等参数;表格比较:对于CSV/TSV格式的表格文件,WinMerge可以将它们的内容以表格形式显示,并高亮显示差异数据。经常用于比对代码,非常方便耐用。

2024-11-15

13种改进粒子群优化算法.rar

该压缩包包括了13种改进粒子群优化算法,基于MATLAB软件,PS:需要的同学请自提,仅用于学习参考,无任何商业行动。

2024-11-07

anfis-master.zip

ANFIS(‌Adaptive Neuro-Fuzzy Inference System)‌,ANFIS算法的核心思想是将模糊逻辑和神经网络相结合,‌通过学习数据的模糊规则和权重参数,‌实现对未知数据的预测。

2024-08-15

TensorANFIS-master.zip

ANFIS算法,一种结合了神经网络和模糊逻辑的自适应推理系统。‌采用Takagi-Sugeon模型,‌通过学习数据的模糊规则和权重参数,‌实现对未知数据的预测。ANFIS结构由五个层次组成:‌模糊化层、‌模糊规则层、‌模糊推理层、‌解模糊化层和输出层。‌每个层次都有特定的功能,‌通过优化这些层次的结构和参数,‌可以提高ANFIS模型的准确性和预测能力。‌

2024-08-15

AD20软件的PCB规则,RUL文件

AD20软件的PCB规则,文件格式是RUL文件,从而避免手动逐一配置的繁琐过程,极大地提升了设计效率与准确性。

2024-08-13

空空如也

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

TA关注的人

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