自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叔婆面

自由自在,用心呼吸~

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

原创 苹果官网Apple 设备配件设计指南_ 配件设计准则

苹果公司发布了《Apple设备配件设计准则》,为开发者提供官方设计规范指南。该文档详细说明了与iPhone、iPad等苹果设备兼容的配件设计标准,包括硬件接口、软件集成等技术要求。开发者可通过苹果官网获取PDF版设计指南(链接已附),确保配件符合苹果生态的技术与用户体验标准。该准则旨在维护苹果设备与配件的无缝协作,提升产品兼容性和用户体验。

2026-07-09 15:44:36 99

原创 FreeRTOS 提供的五种内存管理策略

FreeRTOS提供五种内存管理方案(heap_1至heap_5),各具特点:heap_1仅支持静态分配,适合资源受限系统;heap_2支持释放但易产生碎片;heap_3封装标准库函数,兼容性好但实时性差;heap_4通过合并空闲块抑制碎片,是通用首选;heap_5扩展支持多区域内存管理。开发者需根据应用场景(如资源限制、实时性要求、内存复杂度)在配置文件中选择一种方案,并注意中断安全性和内存预留问题。heap_4因平衡效率与稳定性成为大多数嵌入式项目的默认选择。

2026-07-09 15:35:44 483

原创 三角恒等式 sin²θ + cos²θ = 1 的推导

摘要:三角函数基本恒等式sin²θ + cos²θ = 1是数学中的核心公式,具有多重证明方法和广泛的应用价值。初中几何法通过直角三角形和勾股定理直观证明;高中几何法利用单位圆定义,将三角函数与坐标几何结合;高等数学法则通过欧拉公式、幂级数展开和微分方程等工具,从复数、分析和微分方程角度进行严谨推导。这三种方法体现了数学知识从直观到抽象的发展过程,不仅验证了该恒等式在实数范围内的普适性,还揭示了三角函数与指数函数、圆方程等数学概念的深刻联系。该恒等式在物理、工程和计算机图形学等领域都有重要应用,是连接几何、

2026-06-16 09:29:47 219

原创 三角函数恒等式

三角函数是无线通信系统的数学基石,在电磁波建模、频谱分析、信号处理等方面具有核心作用。文章系统梳理了各类三角恒等式,包括基本恒等式、两角和差公式、倍角公式、和差化积等,并详细对比了sin(2θ)和sin(3θ)的函数特性、图像特征及应用场景。在无线通信中,三角函数支撑了调制解调、OFDM多载波技术、滤波同步等关键技术,其正交性特性更是频谱资源高效利用的数学基础。同时,文章通过函数图像和数值对比,展示了不同倍角函数的周期性和变化规律,并分析了它们在物理振动、信号处理等领域的实际应用价值。

2026-06-16 09:27:56 558

原创 高等数学常用数学符号

本文系统整理了高等数学中常用的数学符号及其标准读法,涵盖微积分、集合论、逻辑学等核心领域。主要内容包括:基本运算符号(+、-、×、÷等)、微积分符号(∫、∂、∇等)、集合与逻辑符号(∈、∀、∃等)、函数符号(f(x)、∑、∏等)以及常用希腊字母(α、β、π等)。文中提供了符号的中英文读法对照表,并简要说明各符号的主要用途,如∑表示求和、∫表示积分、∀表示全称量词等。最后附有希腊字母的标准发音指南,可作为数学符号的速查参考。

2026-03-21 08:42:47 3688

原创 CONNECT_IND‌ 与 ‌AUX_CONNECT_REQ‌ PDU的差异

蓝牙连接机制CONNECT_IND与AUX_CONNECT_REQ的对比分析:前者是传统BLE的基础连接方式,流程简单快速但功能有限;后者是蓝牙5.0新增的扩展广播机制,支持更丰富的数据和双向握手,显著提升连接可靠性。两者是蓝牙协议为不同广播模式设计的并行方案,现代设备通常同时支持以获得最佳兼容性和性能表现。主要差异体现在广播信道、广播类型、交互流程和参数设置四个方面。

2026-03-21 08:40:32 88

原创 BLE MAC地址使用

BLE设备的MAC地址分为公共设备地址和随机设备地址两类。公共地址由IEEE分配的24位OUI和厂商自定义24位组成,全球唯一但存在隐私风险;随机地址包括静态随机地址、可解析私有地址和不可解析私有地址,提供不同级别的隐私保护。ESP32平台支持两种地址配置方式,设备必须至少使用一种地址类型。制造商可通过申请公共地址或采用随机地址方案来满足需求,其中可解析私有地址通过IRK动态生成,能有效提升安全性和隐私保护。小型厂商可模拟公共地址实现RPA功能,建议分阶段实施以兼顾兼容性和安全性。

2026-02-24 11:10:15 845

原创 简述 CSMA/CA 协议的工作原理与流程

本文对比分析了Wi-Fi和蓝牙(BLE)的信道访问机制。Wi-Fi采用CSMA/CA协议,通过载波侦听、随机退避和ACK确认机制避免冲突,支持多优先级业务调度。蓝牙则采用跳频扩频技术(FHSS)和时分多址(TDMA),通过快速频率切换实现多设备共存。文章还详细介绍了两者的信道划分方案:Wi-Fi在2.4GHz/5GHz/6GHz频段的不同配置,以及BLE的40信道自适应跳频机制。最后指出优化网络性能需合理规划信道、升级设备固件并配置适当的QoS策略。两种技术在信道访问机制上存在本质差异,Wi-Fi基于竞争,

2026-02-24 11:09:38 918

原创 UTC时间戳转换

UTC时间戳是基于Unix纪元(1970年1月1日)的全球统一时间标准,支持秒级(10位)和毫秒级(13位)两种格式。本文详细介绍了UTC时间戳的特性,包括全球一致性、闰秒调整机制等,并提供了Python、C语言、JavaScript和Java等多种编程语言的实现方法,涵盖时间戳与本地时间的互转操作。文章还推荐了在线转换工具,分析了UTC时间戳在系统开发中的技术优势,如消除时区复杂度、支持分布式系统一致性等,同时提醒开发者注意精度差异、时区处理和夏令时影响等技术细节。

2025-09-13 12:35:56 1725

原创 低功耗蓝牙BLE之BQB测试和指令介绍

摘要: R&S®CMW500是一款多功能宽带无线电通信测试仪,支持LTE、WCDMA、GSM、WLAN、蓝牙等多种技术,具备8载波聚合和MIMO能力。其模块化设计集成VSG/VSA,适用于研发、生产和维护场景。文章详细介绍了HCI和2-Wire两种测试方式:HCI通过复位指令(如01 03 0C 00)验证连接,2-Wire通过UART指令(如0x40 0x94启动Rx测试,0xC0 0x00结束帧)进行射频测试,并提供了频点选择、数据包格式及异常处理说明。测试案例展示了指令应用与结果解析流程。

2025-09-13 12:34:09 1758

原创 三极管和N/P MOS管的介绍和应用

本文对比了三极管与MOS管的核心差异。三极管部分:NPN与PNP管在电流路径(NPN为C→B→E,PNP为E→B→C)、载流子类型(电子/空穴)和输出状态(低/高电平)上存在明显区别。MOS管部分:NMOS与PMOS在衬底类型(P/N型)、沟道载流子(电子/空穴)、导通条件(正/负栅压)、性能(NMOS速度更快)以及应用场景(低端/高端驱动)上形成互补。特别指出NMOS因电子迁移率高而更适用于高速电路,PMOS则多用于CMOS结构。设计时需综合考量导通损耗、开关速度及成本等因素进行选择。

2025-08-01 09:21:26 955

原创 设计可重入(reentrant)函数

摘要:C语言中设计可重入(线程安全)函数需避免数据竞争,主要通过以下策略:1)使用局部变量确保线程独立副本;2)通过参数传递而非全局变量;3)动态分配独立内存;4)利用线程局部存储(TLS);5)避免静态/全局变量;6)正确使用互斥锁等同步机制。核心原则是控制数据共享与访问安全,确保多线程环境下函数可安全并发调用。(149字)

2025-08-01 09:20:45 1178

原创 软件系统设计之__weak修饰符

C语言中的weak特性(弱符号/弱函数)是一种编译器扩展功能,通过__weak修饰符实现。主要作用包括允许函数/变量重定义和增强平台兼容性。弱符号机制让程序优先采用强符号定义,未重定义时则使用默认弱符号实现,常见于HAL库中断处理等场景。该特性支持跨平台开发和驱动兼容,避免编译冲突,增强代码模块化。编译器处理时,强符号不可重复定义,而弱符号可被取代。需注意__weak非C标准内容,仅适用于全局函数/变量,且强定义需在弱定义之后编译。这一机制为库设计和多平台适配提供了灵活性。

2025-07-12 07:32:17 573

原创 低功耗蓝牙BLE之DTM(DIRECT TEST MODE)

本文摘要: 本文详细解析了蓝牙低功耗(BLE)直接测试模式(DTM)的技术规范与实现方法。主要对比了传统蓝牙(BR/EDR)信令测试模式与BLE非信令DTM模式的差异,重点阐述了HCI接口的DTM实现方式。文章剖析了HCI数据包结构,特别说明Sync字节的帧类型标识作用,并列举了关键HCI命令的功能参数。同时介绍了NXP测试工具获取途径,最后强调理解DTM需结合射频测试规范(如RF-PHY.TS.5.1.0)与实际应用需求。全文150字以内,涵盖协议分析、接口实现和测试工具等核心内容。

2025-06-29 14:10:28 2214

原创 NXP MPC5777M发动机管理评估系统

MPC5777M评估系统是一款专为汽车和工业发动机管理设计的高可靠性解决方案。该系统采用32位Power Architecture® MPC5777M微控制器,包含主板和两块可兼容不同封装的子板(416BGA和512BGA)。主板提供多种接口包括CAN、LIN、FlexRay和以太网,子板支持外部存储和调试功能。官方提供了详细的技术文档(参考手册、用户指南、数据手册)和开发工具(S32 Design Studio IDE)。该系统兼具高性能与可靠性,适用于发动机控制及功率逆变器等应用场景。

2025-06-29 13:40:29 762 1

原创 软件设计之字节对齐(alignment)

C语言结构体对齐优化内存访问效率,可通过多种方式控制。主要方法包括:1) 使用GCC的__attribute__((aligned(x)))指定单个成员或整体结构体对齐;2) #pragma pack指令调整默认对齐方式;3) C11标准的_Alignas关键字。对齐需权衡性能与内存占用,不同平台默认策略可能不同,跨平台时应显式指定。结构体对齐规则由数据类型自身对齐值、结构体最大成员对齐值和指定对齐值共同决定。合理设置对齐方式能提升硬件访问效率,但需注意编译器兼容性和内存消耗问题。

2025-06-27 11:47:05 1268

原创 低功耗蓝牙BLE之LE Controller CRC

摘要:本文解析蓝牙低功耗(LE)控制器中CRC校验机制的工作原理与应用。在LE Uncoded PHY数据包中,CRC占3字节,用于检测传输错误。当校验失败时,LE控制器自动触发重传机制。CRC通过发送方附加校验码、接收方比对实现数据完整性验证,其核心多项式为24位(x²

2025-06-15 10:35:16 502

原创 代码管理 - SSH 公钥添加到你的 GitHub 账户

摘要:解决GitHub推送代码时出现的"Permission denied (publickey)"错误,需检查SSH密钥配置。步骤如下:生成SSH密钥:使用ssh-keygen命令创建密钥对,可选设置密码。添加公钥到GitHub:复制~/.ssh/id_rsa.pub内容,在GitHub账户的SSH设置中粘贴并保存。测试连接:运行ssh -T git@github.com验证配置是否成功。检查配置与权限:确保~/.ssh/config文件正确指向密钥,并通过chmod设置私钥权限为600。若

2025-06-15 08:18:57 1306

原创 软件系统之内存越界、溢出、泄露和重叠

本文总结了内存管理中的三大常见问题:内存越界、内存溢出和内存泄露。内存越界指程序访问超出合法边界的内存;内存溢出是系统内存不足导致分配失败;内存泄露则是未正确释放已占用内存。文章通过代码示例分别演示了堆栈溢出、对象无限创建等问题,并分析了内存重叠现象及其解决方案。最后提出四点优化建议:代码检查、工具辅助、硬件升级和规范管理,帮助开发者预防和解决内存相关问题。

2025-05-26 06:47:54 1244

原创 RT Thread FinSH(msh)调度逻辑

RT-Thread是一款开源的嵌入式实时操作系统,广泛应用于嵌入式设备领域。其核心组件FinSH(Fin Shell)为开发者提供了便捷的命令行交互界面,显著提升了系统的调试与维护效率。FinSH具备实时查看系统运行状态、程序运行状态检测等功能,并通过命令注册、解析和执行三个环节实现高效的设备交互。开发者可以通过简单的代码注册自定义命令,并通过命令行直接与设备进行通信。FinSH的设计使嵌入式开发更加便捷,成为开发过程中不可或缺的工具。

2025-05-17 12:45:17 1381

原创 低功耗蓝牙BLE之Acknowledgment and flow control(确认和流量控制)

本文基于蓝牙BLE协议5.2版本的技术规范,详细解析了确认机制与流量控制的工作原理。确认机制通过SN(发送方序列号)和NESN(接收方期望序列号)的1 bit设计,实现了低开销的重传机制,确保数据传输的可靠性。通信流程包括初始状态、成功接收和重传机制,1 bit设计虽降低了协议开销,但限制了多包流水线传输。流量控制策略结合GATT特性操作和MTU协商机制,优化了数据传输效率。总体而言,NESN与SN的1 bit设计是BLE协议在低功耗场景下的核心优化方案,确保了数据传输的高效性与可靠性。

2025-05-17 08:12:00 1284

原创 低功耗蓝牙BLE之发射功率&&(mW/dBm)对应关系

本文简要介绍了BLE(蓝牙低功耗)发射功率的相关知识,主要基于《BLUETOOTH CORE SPECIFICATION Version 5.2》规范。文章首先提到BLE设备通常使用0dBm(1mW)的发射功率,但具体值因产品设计而异。接着,通过公式计算了100mW对应的dBm值,得出100mW等于20dBm的结论。文章还展示了2.402GHz调制信号的频谱仪波形,并解释了频谱仪的基本参数设置,如SPAN、RBW和VBW。此外,文章通过实例说明了无线设备功率的换算关系。

2025-05-11 19:25:55 2007

原创 mWh与mAh的换算

毫瓦是电功率的单位, 即1mW=0.001W。电功率是描述电器设备在单位时间内所消耗的电能或所做的功的物理量,它是衡量电器性能的一个重要指标。当然,毫瓦和瓦特之外,电功率的单位还有千瓦和兆瓦(1kW=1000W,1MW=1000kW=1000000W)。毫瓦, 在电路设计和测试中扮演着重要的角色。兆瓦通常用于表示较大规模的发电设备或电力系统的功率,而千瓦和毫瓦则更常用于描述较小规模的电器设备或电路的功率。在电路设计中,我们需要计算电路中各个元件的功率消耗,以确保电路的正常运行。

2025-04-28 15:32:33 14527

原创 低功耗蓝牙BLE之高斯频移键控(GFSK)

而在实际应用中,为了进一步提高频谱效率或适应特定的通信协议,可以使用广义频率偏移键控(Generalized FSK, GFSK),它通过调整每个符号的频率偏移量来优化性能。这通常是通过使用一个高斯(或近似高斯)滤波器来实现的,使得频率的变化在时间上是连续的,而不是像传统的FSK那样在符号边界处突变。c. 实现:在实际中,GFSK可以通过数字信号处理器(DSP)来实现,通过调整采样点附近的数字信号的频率来实现精确的调制。NumPy的核心是ndarray对象,一个存储单一数据类型的多维数组。

2025-04-28 11:39:23 3476

原创 低功耗蓝牙BLE 之广播事件

ADV_IND 可连接广播:ADV_DIRECT_IND定向广播:ADV_NONCONN_IND不可连接广播:ADV_SCAN_IND可扫描广播:注意:当且仅当TargetA字段存在或AuxPtr字段存在时,使用ADV_EXT_IND PDU的广告事件才指向TargetA字段存在的PDU。

2025-04-21 09:31:42 485

原创 低功耗蓝牙BLE 之配对流程分析一

在SMP上使用(Legacy pairing or Secure Connections)进行pairing,并建立加密连接,以及创建好对应所需的秘钥~请求更新事件: 一般LE 设备会产生请求事件, 通知应用程序更新的远程设备链接秘钥(即是bonding information)发起秘钥检查请求,双方都进行检查,如果没有,那么就可以发起链接秘钥更新,并保存到主/从机本地!比如:IRK、STK/LTK、CSRK, 那么这些秘钥的作用是什么呢?愿你心里有光,脚下有力,共赴人生精彩旅程!

2025-04-20 22:23:03 860

原创 芯片硬件外设之窗口看门狗(WWDG)和独立看门狗(IWDG)的区别

独立看门狗(IWDG)是一种用于监测单片机运行状态的模块,主要用于防止程序因外界干扰或内部错误而进入死循环或停止运行。它通过一个定时器来实现,当定时器溢出时,会触发复位信号,使系统重启,从而恢复正常的运行状态‌。

2025-04-12 09:22:39 1478

原创 软件设计之共同体概念与应用

定义一个unionint i;float f;在这个例子中,Data是一个union,它包含了三个成员:一个int类型的变量i,一个float类型的变量f,和一个字符数组str。尽管这三个成员占据相同的内存空间,但每次只能使用其中一个。使用unionint i;float f;}member_t;// 共用体 数据结构体}member_u;int main()// 使用int类型// 现在尝试使用float类型,这将覆盖之前的int值。

2025-04-03 22:20:17 648

原创 软件框架之底层调用上层接口

方法一.包含头文件首先,确保你的代码包含了定义了这些接口的头文件。例如,如果你要调用某个库的函数,你需要包含这个库的头文件。方法二.链接库确保在编译时链接了包含这些接口实现的库。这通常在编译命令中通过-l(小写L)和库文件名(不带lib前缀)来完成。例如,如果你的库名为libmylibrary,你应该在编译时添加:方法三.调用接口函数在包含头文件并确保链接了正确的库之后,你可以直接调用这些接口函数。或者 extern library_function(void);

2025-03-26 17:58:27 923

原创 椭圆曲线密码学之ECDSA

c. ‌生成签名‌:产生一个随机整数r,计算点R=rG,然后将原数据和点R的坐标值x,y作为参数,计算hash值Hash=SHA1(原数据,x,y),最后计算s≡r−Hash∗k(modn),r和s作为签名值‌。ECDSA是一种基于椭圆曲线密码学的数字签名算法,用于创建和验证数字签名,确保消息的完整性和来源的真实性‌。‌uECC‌:专为高性能计算设计,能够在资源受限的环境中提供高效的加密和解密操作。‌d. 验证签名‌:接收方使用公钥和签名值r、s进行验证,如果验证通过,则确认消息的完整性和来源的真实性‌。

2025-03-16 12:22:12 2210

原创 密码技术应用介绍

1. 对称加密对称加密使用同一密钥对数据进行加密和解密,核心目标是确保信息的机密性。其特点是算法效率高,适合处理大量数据。例如,【AES算法】因其安全性和性能优势,广泛应用于文件加密、数据库保护和网络通信中的数据加密传输。但密钥分发过程需通过安全通道完成,否则可能成为潜在的安全隐患。2. 非对称加密非对称加密通过公钥和私钥配对实现加解密,公钥可公开分发,私钥仅由持有者保存。【RSA算法】是典型代表,常用于安全通信中的密钥协商(如SSL/TLS握手)和数字证书签发。

2025-03-13 13:56:46 1122

原创 FreeRTOS之TASK Stack DEBUG分析

当FreeRTOS系统TASK运行出现异常时,参考这个method去debug TASK stack, 需结合.map。//保存任务运行时间信息。本文章主要根据FreeRTOS-Kernel 版本V10.5.0来分析TASK Stack;//获取任务运行时间信息。文件,可定位到FLASH取址的大概位置,起到协助分析问题的作用。嗯,也还有其他debug的方法,比如:Jlink仿真等。

2025-03-11 11:31:29 1128

原创 低功耗蓝牙BLE 之LE Uncoded PHYs Packets

其中,Packets(Air Interface PacketS)涉及到协议栈ATT, L2CAP, Link Layer等各个层次!BLE技术知识的理解,它的标准是BLE SPEC,我们只有遵循规范要求,才能更好地理解原理的本质。欢迎大家关注和留言沟通哟,每周不定期分享技术文章,一起分享技术的点点滴滴~为传输数据提供承载,如Information payload。我们由Link Layer 往 ATT 层进行分析和解析,

2025-03-09 22:37:50 1315

原创 低功耗蓝牙BLE 之Bluetooth Core System Architecture

本文章主要根据 《BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 1, Part A》规范描叙来分析BLE Core Architecture 以及相关内容;

2025-02-28 16:14:22 1017

原创 低功耗蓝牙BLE 之MAXIMUM TRANSMISSION UNIT (MTU)

L2CAP协议层,是使用L2CAP_CONFIGURATION_REQ (CODE 0x04) 和 L2CAP_CONFIGURATION_RSP (CODE 0x05) 进行协商的喔!MTU 协议并不是建立连接后的必要流程,该参数可以提高主从机通讯的吞吐率,但也不是决定吞吐率的唯一参数~BLE技术知识的理解,它的标准是BLE SPEC,我们只有遵循规范要求,才能更好地理解原理的本质。ATT(属性协议),这里是使用LE-U携带用户数据的, 那么他们协商的MTU 应用于LE-U!

2025-02-25 23:05:20 955

原创 低功耗蓝牙BLE connPeripheralLatency参数作用分析

Latency 只在Peripheral(从机)端生效,central(主机)端会按照conn_interval间隔去发包,然而从机可以根据latency参数选择地去接收数据;建立连接的过程中,主机会下发这个latency参数,默认都是0,也就是从机必须按照conn_interval间隔去接收主机发出的包。BLE技术知识的理解,它的标准是BLE SPEC,我们只有遵循规范要求,才能更好地理解原理的本质。最后,如果latency 大于0的话,从机就可以按照这个延迟逻辑不接收主机的包,

2025-01-21 15:11:45 820

原创 低功耗蓝牙BLE连接建立的过程分析

仅供参考,谢谢

2025-01-18 16:19:58 504

Linux 官方开源蓝牙协议栈BlueZ

BlueZ‌ 是 Linux 官方的蓝牙协议栈,自 Linux 内核 2.4.6 版本起便被纳入其中,是目前所有主流 Linux 发行版(如 Ubuntu、Debian、Fedora 等)默认使用的蓝牙实现 。它由开源项目维护,遵循 GNU General Public License (GPL),为蓝牙设备的通信提供了完整的支持 。 BlueZ 分为内核态和用户态两部分: ‌内核态‌:包含蓝牙核心协议栈(如 HCI、L2CAP、RFCOMM)和硬件驱动(如 btusb.c、hci_uart.c),负责底层数据传输与硬件控制 。 ‌用户态‌:主要包括 bluetoothd 守护进程、bluetoothctl 命令行工具、D-Bus API 接口以及各类实用程序(如 hcitool、btmon),供上层应用调用和用户管理蓝牙设备 。 它支持多种蓝牙协议,包括经典蓝牙(BR/EDR)、低功耗蓝牙(BLE)、A2DP(音频传输)、SPP(串口协议)、GATT/GAP 等,并提供标准 socket 接口和 D-Bus 通信机制,便于开发者集成到应用程序中 。

2026-04-06

BLUETOOTH CORE SPECIFICATION Version 6.0

BLUETOOTH CORE SPECIFICATION Version 6.0

2025-03-29

BLUETOOTH CORE SPECIFICATION Version 5.3

BLUETOOTH CORE SPECIFICATION Version 5.3

2025-03-26

STM32F103 战舰开发指南

正点原子STM32F103 战舰开发指南,谢谢

2025-03-23

空空如也

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

TA关注的人

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