自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Joyer_cc 的博客

C 语言和电子爱好者

  • 博客(132)
  • 收藏
  • 关注

原创 电磁对偶原理中两个“不一样”的对偶关系

电磁对偶原理中存在两个看似矛盾的对偶关系:(8.3.8)的一般对偶替换和(8.4.7)的偶极子远场对偶关系。前者用于场方程转换,后者用于具体场分量对应。关键差异在于磁场与电场的对应方向:(8.3.8)为H_e↔E_m,(8.4.7)为H_ϕe↔-E_ϕm。这种差异源于偶极子远场的波阻抗关系和辐射方向要求,需要引入负号来保证能流方向正确。两个关系本质上是相容的,(8.4.7)是(8.3.8)在具体物理情境下的应用,考虑了场分量相位等实际因素。理解这种差异有助于掌握电磁对偶原理在不同场景下的灵活运用。

2026-03-06 22:46:06 394

原创 一阶RC电路时间常数公式推导

本文详细推导了一阶RC电路的时间常数公式。从建立RC电路的微分方程出发,利用一阶线性微分方程的通解公式,结合初始条件求解电容电压随时间变化的表达式。通过反解方程,最终得到计算充电时间的通用公式:t = RC ln[(vc(∞)-vc(0))/(vc(∞)-VTH)]。文中还以单稳态电路为例,展示了该公式的实际应用,推导出输出脉宽tw≈0.69RC的结果。整个推导过程揭示了RC电路暂态过程的数学本质,为深入理解电路行为提供了理论基础。

2026-03-06 22:43:26 401

原创 ∇²(1/R) = 0 的几种推导方法总结

本文总结了证明函数1/R(R=|r-r'|)满足拉普拉斯方程∇²(1/R)=0的三种方法。直接求导法通过计算二阶偏导数验证,最为严谨但计算复杂;球坐标法利用对称性简化推导过程;物理方法则基于静电学原理,直观但依赖物理定律。三种方法在R≠0时都得出相同结论,而R=0处的奇异性需用δ函数处理。理解这一性质是学习电磁学和数学物理方法的重要基础。

2026-03-04 21:18:08 498

原创 为什么 ∇²(1/R) = -4πδ(r-r’) ?——从积分验证到物理意义

本文通过积分验证的方法,解释了拉普拉斯算子作用于1/R产生狄拉克δ函数的数学原理。在三维空间中,利用散度定理将体积分转化为面积分,计算得到包围源点的小球面积分结果为-4π。与δ函数的定义对比后,证明了分布等式∇²(1/R)=-4πδ(r-r')的成立。这一结果是点电荷电势满足泊松方程的基础,也是库仑定律与高斯定理微分形式之间的关键桥梁。通过立体角积分的几何意义,揭示了-4π系数的来源,为理解电磁学中的格林函数和泊松方程求解提供了重要基础。

2026-03-04 20:51:36 561

原创 同轴线尺寸优化:从麦克斯韦方程到50Ω、75Ω标准

本文从麦克斯韦方程出发,推导了同轴线设计的三个关键比例:功率容量最大(a/b=1.65,30Ω)、耐压最高(a/b=2.72,60Ω)和损耗最小(a/b=3.59,77Ω)。通过特性阻抗公式Z0≈60ln(b/a)Ω,解释了工程标准75Ω源于最小损耗设计,而通用50Ω则是功率容量与损耗的折衷选择。这些理论推导为射频工程中的同轴线设计提供了重要依据。

2026-02-27 11:07:38 1007

原创 全反射时反射系数的辐角公式:两种形式及其相互转化

本文总结了电磁波全反射时反射系数辐角的两种表达式形式及其转换关系。形式A直接使用介电常数比ε₂/ε₁表示辐角φ,推导出垂直极化和平行极化的相位公式(式1、2);形式B则通过波阻抗η和折射率n表示tan(φ/2),得到相应表达式(式3、4)。文章详细展示了两种形式的推导过程,并建立了它们之间的转换关系:利用ε₂/ε₁=(n₁/n₂)²和η₁/η₂=√(ε₂/ε₁)进行变量代换。最终证明两种形式本质等价,为全反射相位分析提供了完整的数学框架。

2026-02-22 16:37:48 944

原创 等效波阻抗的两种推导方法:电路理论与电磁场理论的对比与统一

本文对比了等效波阻抗的两种推导方法:电路理论与电磁场理论。从电路角度出发,基于传输线分布参数模型和电报方程,推导出输入阻抗公式;从电磁场角度,利用平面波垂直入射多层媒质的边界条件,得到相同的表达式。结果表明,两种方法虽然出发点不同,但最终结论完全一致,揭示了电磁波传播与传输线理论的内在统一性。这为分析多层媒质中的电磁波传播提供了理论基础,在微波工程、天线设计等领域具有重要应用价值。

2026-02-21 21:39:38 572

原创 C 陷阱与缺陷 —— Chapter tree 语义陷阱之非数组指针

对于 char *r;可以表示指向一个 char 类型的字符指针,或者指向一个字符串。在不知道 r 字符串的大小的情况下,只能使用 melloc 函数进行动态内存分配。/*使用完 r 这段空间必须释放*/r){ /* 内存分配失败 */

2025-03-16 16:52:06 206

原创 C 陷阱与缺陷 —— Chapter tree 语义陷阱之指针和数组

*等效于 *(*(calendar + month ) + day) = 0;指针可以指向各种数据类型的数据,通过指针可以对此类型结构的成员进行操作,如果一个指针指向一个数组,可以通过指针加减控制指向的数组位置,数组名代表指向数组第一个元素的指针,可以采用 int a[20];int *p = a;的方法使得 p 指针指向 a 数组。/* monthp 是一个指向具有 31 个子数组的二维数组指针*/

2025-03-16 16:24:27 199

原创 CH340 自动下载电路分析

CH340 自动下载电路分析

2025-02-23 21:36:52 442

原创 树莓派理想二极管电路分析

树莓派理想二极管电路分析

2025-02-23 20:48:48 660

原创 C 陷阱与缺陷 —— Chapter two 语法陷阱

对于一个变量的声明,将其变成一个一个类型的转换符,只需要把声明中的变量名和声明末尾的分号去掉,再将剩余部分用一个括号整个括起来即可。fp 是一个函数指针,*fp 是该指针指向的函数,(*fp)() 是该函数的调用方式。其中 (void (*)()) 将 0 转化为 void(*)() (返回值为 void 的函数指针类型)类型。对于目标执行执行 0 地址的函数,其代码为 (*(void (*)())0)();signal 函数函数的返回值是一个指向调用前的用户定义信号处理函数的指针。

2025-01-12 19:19:32 385

原创 C 陷阱与缺陷 —— Chapter one 词法陷阱

与 char hello[] = {'H','e','l','l','o',' ','w','o','r','l','d','\n',0};程序将程序分解为符号遵循如下逻辑:从左到右读取一个能够最初一个有意义符号的最长的字符串作为一个符号,其中的字符串不能含有空格。y = x/*p /* p 指向除数 */;,该数组被双引号之间的字符和一个额外的二进制为 0 的字符 ‘\0’ 初始化。改进:y = x / *p;y = x/(*p);整型常量的第一个数字是 0 则这个数是八进制数。== 是比较是否相等。

2025-01-12 15:18:58 822

原创 ESP8266 SDK 如何建立自定义文件夹

参考 建立如下文件夹和文件:在工程 CMakeLists.txt 加入:

2025-01-12 00:16:50 210

原创 ESP8266 Ubuntu 安装

参考:https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/linux-setup.htmlhttp://aiclouds3.0-docs.aithinker.com/#/2.device/configuration_linux?

2024-12-16 11:44:32 750

原创 G3810 MACOS 驱动安装

MacBook M1如何安装佳能打印机G3010 - 好主机测评网

2024-12-08 14:56:52 1715

原创 树莓派 PICO RP2040 MACOS 使用

这里会提示报错:ln: /bin/picotool: Operation not permitted。放在 usr/local/bin 下面可以全局使用。

2024-12-08 14:50:43 651

原创 C 语言链接文件中的 PROVIDE 关键字

代码当中的 extern systimer_dev_t SYSTIMER;通过打印结果推断出 PROVIDE 实际上是指定了 SYSTIMER 这个结构体的首地址。在 esp32c3.peripherals.ld 中 PROVIDE ( SYSTIMER = 0x60023000 );

2024-11-28 19:59:05 367

原创 C 语言函数指针 —— 实现程序分层

通过函数指针实现上层与底层应用的分层,将有助于代码更便于 Debug。在 main.c 中只做最简单的调用,有助于条理清晰。

2024-11-08 22:23:27 382

原创 Python 类的继承

在 electric_car.py 中通过 from car import Car,即可在 electric_car.py 中导入 Car 类。__init__() 方法在类的创建的实例化过程中会被调用(特殊方法,使用时要检查好拼写)。super() 后的 __init__ 的属性交给父类进行初始化,子类无需初始化,继承父类的这些属性。类里面包含类的属性,__init__ ()方法和类的方法。moudle:模块,和实例名和函数都是小写加下划线的方法表示。super() 方法可以使得子类可以调用父类的方法。

2024-09-20 22:11:40 388 1

原创 S32K144 EB 和 MCAL 安装

需要把 P1 的 Plugins 和 AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\S32K14X_MCAL4_3_RTM_1_0_0_Sample_Application\eclipse\plugins 放到 AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\eclipse\plugins 下面,并复制所以的 Plugins 到 C:\EB\tresos\plugins 下面,然后重启 EB。修改 launch.bat。

2024-05-14 23:21:40 1379

原创 i.MX 6ULL 裸机 IAR 环境安装

2. debug 时需要修改每个工程下的 ddr_init.jlinkscript,参考链接。1. 在 SDK 的 core_ca7.h 加上。二. 使用最新版本的 IAR,需要修改 SDK。一. IAR 的安装请自行搜索。

2024-05-06 22:40:15 417

原创 STM32G474 CMAKE VSCODE FREERTOS 导入

FreeRTOS 导入 CMAKE 工程

2024-05-04 17:16:14 1140

原创 STM32G474 CMAKE VSCODE 开发环境搭建

本篇博文尝试搭建 stm32g474 的开发环境。

2024-05-04 15:49:02 1279

原创 Jlink+OpenOCD+STM32 Vscode 下载和调试环境搭建

需要手动下载 x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z 版本的软件包,并添加环境变量。需要修改 Vscode 工程 .vscode 路径下的 launch.json 文件。对于 openocd,需要使用 Zadig 工具安装 Jlink 驱动。并将 mingw32-make.exe 名字改成 make.exe。对于 Mingw 的安装比较困难,国内的网无法正常下载组件,

2024-02-18 11:51:58 3259

原创 计算机中的数据运算

由于同样位数的机器数的正数与负数的相加不会产出溢出,参数溢出的可能是正数与正数的相加或者负数与负数相加;方法二:两位符号位判断溢出,正常情况下两个符号位是一样的,0 表示正数,1 表示负数。方法一:可以通过最高有效位的进位 异或 符号位进行判断,如果为 1 则为溢出。,计算数的位数决定了可以存放的数据的大小,加减产生的数据的大小要在机器数可以表示的范围之内。连同符号位一起相加,符号位产生的进位自然丢掉,这里要特别注意。右移:绝对值缩小为原来的二分之一。放上计算机中的数据的表示方法。

2024-01-06 22:50:19 616

原创 stm32f407 bm -> freertos

在 USER 下多了 FreeRTOSConfig.h 文件,和多了需要用到的一些外设驱动。对比添加 os 文件到 bm 工程中,以及 C/C++ .h 文件的包含。② 修改使用 rtos 的 SysTick_Handler。port.c 要选择 RVDS 文件夹下的 ARM_CM4F 文件中的。工程结构上,os 版本多了 FreeRTOS 文件夹。① 去掉 PendSV_Handler 中断服务函数。stm32f4xx_it.c 文件 bm 与 rtos 对比。

2024-01-01 17:33:01 537

原创 git 使用

git diff HEAD~n HEAD 比较之前的版本和当前版本的差异,n 为数字,代表历史版本,1 版本可以不加。在工作区删除文件后,暂存区的文件并没有被删除,如果想要删除暂存区的文件需要执行一下 git add 操作。git reset --mixed:版本回退到某一版本,工作区文件保留,暂存区不保留。git rm 文件:删除工作区和暂存区的文件,重新提交后,将从仓库中删除此文件。git status:获取仓库状态,未提交到暂存区的文件为红色,提交的为绿色。

2023-12-31 22:02:04 664

原创 计算机中的数据表示方法

补码表示可以将减法运算通过加法实现。

2023-12-29 23:31:37 849

原创 FreeRTOS 任务间的通信

优先级继承可以减少优先级翻转的危害:把低优先级任务临时提高到高优先级任务的级别。的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的。优先级翻转问题:高任务抢占低任务无法获取互斥量而进入阻塞状态,即优先级翻转。可以进行逻辑与或,实现一对多,多对多的同步。递归互斥量:一个任务可独占互斥量的次数。由于信号量会累加,所以不可以多对多的通信。用于任务间的同步通信,触发任务运行。事件可以被任意的任务读写。信号量:semphr,基于消息队列实现。互斥量: 特殊的二值信号量。

2023-12-24 11:52:37 472

原创 ARM 汇编语言知识积累

由于 ARM 是两级流水线,可以理解为正在执行的指令有两条 32 位的指令(2*32 bit = 8 Byte 的指令长度),即。LR:即 R14,链接指针,保存未跳转之前的程序的下一条指令的地址,由 CPU 硬件实现。自动保存进入异常前的 CPSR 的值,以便异常返回后恢复异常发生时的工作状态。和 SPSR,arm 进入异常模式后,PC:R15,程序计数器,保存当前。SP: 即 R13,栈指针,

2023-12-24 10:50:13 1197

原创 RT1020 —— BootLoader 中烧写 APP 到指定位置的方法

添加 flexspi 操作函数文件到工程中。

2023-11-30 09:29:03 456

原创 74HC165 并入串出

【代码】74HC165。

2023-11-12 23:56:28 958

原创 Klipper seria.c 文件代码分析

程序只有安照正确的逻辑编写 API 函数,Klipper 下位机驱动才可以适配上层的应用层代码,对于 serial.c 程序,核心是理解中断发送和接收的条件,在应用代码的基础上编写发送和接收函数。;) {if (!// Output fifo full - enable tx irq,有数据需要发送,使能发送中断break;void//获取中断状态if (status == 0x04) //接收中断。

2023-07-31 18:52:53 1580

原创 AX301 使用记录

断电上电,程序即可运行。

2023-06-23 18:09:54 195

原创 RT1010 PWM 组成配置和 PWMX 的使用

本篇博文将着眼于 i.MX RT1010 内部的 eFlexPWM,介绍其各个功能模块,以及 PWM 产生的原理。

2023-05-02 19:01:33 1413 4

原创 两层板 PCB Layout 注意实现 -- Layout 检查清单和创想浅记

确定电路可行性,这个操作一般是要在 Layout 之前进行的。 对单片机引脚进行功能划分,定义接口。 接口要适应 Layout 便利性或规范要求。 接口预留参考电平和地,方便器件供电。 对引脚定义列表格进行描述。 通过实验进行模拟仿真: 采用洞洞板或面包板用实际器件进行模拟。 通过Multisim 或 Simulink 等工具进行模拟。 通过 FPGA 使用 verilog 进行数字逻辑设计,通过modelsim 进行仿真验证。 电路功耗预算,根据

2023-04-07 21:43:29 687

原创 DCDC - 开关技术概览

电力场效应晶体管(Mental Oxide Semiconductor Field Effect Transistor, 翻译是 金属氧化物半导体场效应晶体管 MOSFET)高频脉冲频率调制(Pulse Frequency modulation, PFM)高频脉冲宽度调制(Pulse Width Modulation, PWM)两级式(全桥变换器) DC/AC + AC/DC。AC/DC PWM 整流、不可控整流(工频)、相控整流(工频)单级式(降压变换器) DC/DC。二极管(diode)

2023-03-26 12:32:04 454

原创 FreeRTOS-编程风格

- unsigned short int , 当 FreeRTOSConfig.h 宏 configUSE_16_BIT_TICKS 为 1 时为 16 位。-- unsigned int , 当 FreeRTOSConfig.h 宏 configUSE_16_BIT_TICKS 为 0 时为 32 位。portBASE_TYPE : 由处理器的架构决定多少位。private -- prv : 私有函数前缀。数据结构、任务句柄、队列句柄 -- x。前缀 -- 表明宏所在头文件。

2023-03-19 22:26:50 653

原创 NPN 与 PNP

NPN 基极高电平导通,PNP 低电平导通,开关可以放大电流,也可以只是开关。PNP 的特性与 NPN 相反,NPN 三极管可以用做电平转换。

2023-01-16 20:39:57 3589

STM32G474 CMAKE VSCODE FREERTOS 导入

STM32G474 CMAKE VSCODE FREERTOS 导入

2024-05-04

空空如也

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

TA关注的人

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