自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大白话解释蓝牙的RPC机制

就像餐厅里你不需要自己进厨房做菜,通过服务员就能享受美食一样,RPC让蓝牙设备的不同部分能高效协作,共同完成复杂任务!服务员把你的话翻译成厨房能懂的"订单号A-牛排" → RPC把请求打包成特定格式。厨师看到"订单号A-牛排",开始煎牛排 → 服务端执行实际功能。你对服务员说:"我要一份牛排" → 相当于程序调用一个函数。服务员把做好的牛排端给你 → RPC把执行结果返回给客户端。(客户端)想调节音量:"把音量调到70%"(服务端)收到后,实际执行音量调节。通过RPC回复:"已调到70%"

2025-06-12 10:25:03 124

原创 大白话解释SMBus2.0

如果员工半天没回应(比如卡住了),或者说话太慢(数据传输间隔太长),老板就自动认为“这人掉线了!SMBus 2.0 就是主板上的“老板”(主芯片)和“小工”(电池、温度计等)之间用两根线(一根打拍子定节奏,一根传数据纸条)聊天的规矩。SMBus 预留了一些特殊地址,并规定如果两个员工不小心用了同一个工号(地址冲突),老板有办法发现并解决这个问题(通过 ARP 协议)。接收方(老板或员工)会自己也算一遍这个码,如果和收到的对不上,就知道纸条在传送过程中被干扰出错了,可以要求重发。所有员工都看到了纸条。

2025-06-06 17:50:30 685

原创 大白话解释一下 MIC Bias

MIC Bias”就是给模拟驻极体电容麦克风内部放大器供电的直流电压。

2025-06-06 13:53:27 780

原创 大白话解释IIC逻辑(老师叫学生回答问题)

记住核心流程起始信号 → 寻址(叫名字)→ 应答(举手)→ 数据传输(问答)→ 停止信号(结束)。理解主从角色主设备主导通信(老师),从设备被动响应(学生),主设备可切换读写方向(老师既可以提问也可以听回答)。结合实际案例例如用单片机(主设备)读取温湿度传感器(从设备)数据时,可套用 “老师问学生温度” 的逻辑来分析代码流程。

2025-06-05 16:39:42 661

原创 IIC的由来

飞利浦在正式文档和标识中将中间的 “I” 用上标 “²” 表示(表示平方,暗示两个 “I”)。因为在上标格式不易输入或显示的环境(如代码、纯文本邮件、简单文档)中,用数字。:就是大家熟知的“集成电路”,指代连接到总线上的设备(芯片)。这是更早期的、更直接的字母缩写写法,直接将三个字母。,因为它丢失了“两个 I”这个重要含义的表达(上标。:表示“之间”、“相互”的意思,指这种总线用于。在这里就是代表“平方”或“两个 I”的概念。,它没有体现两个 “I” 的来源和关联。这个名称中,取第一个单词的首字母。

2025-06-05 13:34:06 281

原创 在虚拟机安装ubuntu-20.04.5-desktop时出现窗口不全

按住ctrl+alt+t,召唤出终端,然后输入xrandr -s 1280x800【中间就是字母x】然后再按enter,就可以改变分辨率,然后可以看到继续按钮了。

2025-06-05 10:23:16 447

原创 STM32中,如何理解看门狗

在STM32微控制器中,看门狗(Watchdog)是一种硬件计时器,用于,防止软件死锁或跑飞。,使程序恢复至初始状态。

2025-05-29 16:13:35 871

原创 什么是CVSD

它通过1比特量化实时跟踪音频信号的变化趋势,是早期蓝牙设备(HSP/HFP 1.0-1.5)的强制语音编码标准,也是现代蓝牙设备兼容老旧设备的备选方案。在您的产测中,需关注其时钟稳定性与噪声环境下的解码鲁棒性,而新一代设备应优先保障mSBC性能。CVSD是蓝牙语音的“老兵”,以超低复杂度在资源受限设备中延续生命。当连续3个相同比特(如"111"),增大δ(斜率变陡)当比特交替(如"1010"),减小δ(斜率平缓):安静时语音清晰,嘈杂环境(如地铁)出现尖锐噪声。优势:适应语音信号的动态范围,减少阶梯噪声。

2025-05-29 14:27:49 383

原创 什么是MSBC

mSBC是蓝牙通话质量的基石,其性能直接影响用户对耳机“清晰度”的感知。,专为HFP/HSP(蓝牙免提/耳机规范)设计。旧版蓝牙使用CVSD(连续可变斜率增量调制)编码,音质粗糙(仅64kbps,8kHz采样),抗噪能力差。mSBC通话时需开启ENC(环境降噪),DSP会融合mSBC解码数据与麦克风信号进行降噪处理。,对语音关键频段(1-4kHz)优先编码,减少环境噪声影响。→ 检查mSBC包丢失率(蓝牙嗅探仪抓取HCI日志),同时兼容蓝牙SCO(同步面向连接)链路。确保蓝牙基带与mSBC编解码器同步。

2025-05-29 14:17:58 423

原创 什么是DSP

在您的产测场景中,验证DSP解码的准确性(如频响曲线、信噪比)直接影响最终产品的音频性能。它是现代音频设备(如蓝牙耳机、智能音箱)的核心技术之一,其核心作用是通过高效算法将压缩的音频数据转换为可播放的模拟信号。在通话或语音助手场景中,DSP实时处理麦克风采集的音频,执行降噪(ENC)、回声消除(AEC)等算法(如文档中。:将MP3、AAC、aptX、LDAC等压缩格式的音频流,通过数学算法解压缩为原始PCM(脉冲编码调制)信号。:在解码过程中进行实时音效处理(如降噪、均衡器调节、空间音频增强)。

2025-05-29 10:00:30 426

原创 大白话解释一下pdm和pcm

PDM 和 PCM 是音频编码领域的 “基础款” 和 “进化款” 关系,就像 “素颜照” 和 “美颜照片” 的区别,核心都是记录声音,但精细度和压缩方式不同。

2025-05-29 09:59:06 470

原创 什么是大端序,什么是小端序,如何记忆它们!!!

x86/x64架构(Intel/AMD处理器)、ARM处理器(可配置)。网络传输(网络字节序)、Java虚拟机、PowerPC处理器。“大端高位先,小端低位前;网络用大端,Intel是小端。类似书写顺序:从左到右,高位在前(如数字。类似反序书写:从右到左,低位在前(如数字。(从左到右为低地址到高地址)。:高位在前,适合人类阅读习惯。“大”对应“高位优先”,即。“小”对应“低位优先”,即。:低位在前,硬件处理更高效。放在内存起始(低地址)。放在内存起始(低地址)。,低位字节存于高地址。,高位字节存于高地址。

2025-05-27 17:18:29 319

原创 蓝牙host和controller

PC 通过 USB 蓝牙 Dongle(Controller)与 Host(Windows 蓝牙协议栈)通信。:Host 运行在主处理器(如手机 CPU),Controller 为独立模块(如 USB 蓝牙适配器)。:Controller 专注实时性(硬件效率),Host 专注功能扩展(软件灵活性)。:L2CAP(逻辑链路控制)、ATT/GATT(属性协议)、SMP(安全管理)。:Host 和 Controller 集成在同一芯片(如手机蓝牙芯片)。:处理无线信号(如 2.4GHz ISM 频段)。

2025-05-21 11:15:32 772

原创 ANC--Active Noise Cancellation

Biquad 滤波器用于实现 ANC 算法中的频率响应调整(如低通、高通、峰值滤波等)。Biq_num 越多,可实现的滤波复杂度越高,但会占用更多 DSP 或芯片资源。:通过耳机内部麦克风采集耳道内的残余噪声,进一步优化低频噪声(如引擎声)的抵消效果。通过 ANC 调试工具(如芯片厂商提供的上位机软件)实时调整滤波器参数,观察降噪频响曲线。结合两种路径的混合降噪方案,兼顾高频和低频噪声抵消(如 TWS 耳机常用)。测试不同环境(如嘈杂街道、办公室)下的降噪效果,优化路径和滤波器配置。

2025-05-20 14:02:17 341

原创 解决将其他盘可用空间,移植到C盘

或者在箭头地方输入想阔的大小,然后开始,一直确定,就行。重启中,会自动进行分配。然后输入,下面的c是c盘如果有其他盘报错,那么下面的c改成其他盘的名称。首先召唤出任务管理器,然后新建任务,输入cmd选择以管理员方式运行。右击-》选择扩容分区-》选择要缩小的分区-》然后确定。

2025-05-16 17:47:29 227

原创 Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可

【代码】Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可。

2025-05-14 14:44:40 348

原创 在 Ubuntu 20.04.6 LTS 中将 SCons 从 3.1.2 升级到 4.9.1

在 Ubuntu 20.04.6 LTS 中将 SCons 从。如果遇到问题,请检查 Python 环境和依赖冲突。通过以上步骤,您应该能成功将 SCons 升级到。:Python 包依赖冲突。如果需要保留多个版本,使用。

2025-05-14 12:59:33 560

原创 PDM采集数字麦克风数据

在嵌入式系统中通过接口采集数字麦克风数据时,需要配置硬件、时钟、数据流和软件解码等多个环节。需根据麦克风规格书设置,常见值为(对应PCM输出采样率16 kHz时,64倍过采样)。通过PLL或外部时钟源生成精确的PDM时钟,避免抖动。通过以上配置,PDM数字麦克风可以稳定采集音频数据,并通过硬件或软件解码为可用的PCM格式。实际开发中需结合具体MCU和麦克风型号调整参数。通过。

2025-05-12 10:15:45 1766

原创 大白话解释CPU、NPU和GPU

(就像公司分工:CEO管全局,设计部搞创意,AI团队专攻智能业务!

2025-05-09 17:57:22 254

原创 大白话解释地址线宽度

地址线就像“密码位数”,位数越多,能打开的内存“柜子”就越多,电脑就能用更大的内存啦!🚀。

2025-05-09 17:41:37 411

原创 分布式处理架构

分布式处理架构是一种将计算任务分散到多台计算机或服务器上协同完成的系统设计方法。这种架构通过将工作负载分配到多个节点(可以是物理机、虚拟机或容器)来提高性能、可靠性和可扩展性。

2025-05-09 17:15:16 586

原创 ADC和DAC

ADC(Analog-to-Digital Converter,模数转换器)和DAC(Digital-to-Analog Converter,数模转换器)是信号处理中两种关键的转换器,它们的功能和用途有显著区别。现实概念中永远划分不完的量就是模拟量。用有限的存储单元存储起来叫数字量。

2025-05-08 17:30:20 694

原创 .i .o .s后缀文件

在嵌入式开发和编译过程中,.i、.o 和 .s 是常见的中间文件格式,它们在代码编译的不同阶段生成。为什么需要这些文件?如何手动控制编译阶段?嵌入式开发中的特殊场景在编译和嵌入式开发中,.i、.s 和 .o 文件后缀的全称及详细解释如下:.i → "Intermediate"(中间文件).s → "Speech"(像人类语言).o → "Object"(目标)

2025-05-08 14:03:52 490

原创 EDA文件

不同的EDA软件使用不同的文件扩展名和格式,以下是主流工具对应的文件类型:若已知文件来源的EDA工具,直接使用对应软件打开(如Altium Designer打开)。注意:高版本软件可能无法直接打开低版本文件,需更新或联系设计者转换。Gerber查看器:将.pcb文件导出为Gerber(RS-274X格式),用免费工具查看:ViewMatehttps://www.pentalogix.com/viewmate.htmlKiCad GerbViewhttps://www.kicad.org/在线查看器:PCB

2025-05-06 13:29:23 292

原创 RT-Thread

文件系统(DFS)、网络协议栈(SAL)、低功耗管理(PM)、调试工具(ulog、Finsh Shell)等。,专为嵌入式设备设计,具有高度可裁剪性、多任务调度和丰富的中间件支持。提供标准化的外设驱动接口,支持 STM32、ESP32、NXP 等主流芯片的快速移植。一键集成(如MQTT、LVGL、TensorFlow Lite Micro)。任务调度(优先级抢占、时间片轮询)、信号量、消息队列、定时器等实时核心功能。一键编译生成固件,通过 J-Link、ST-Link 等工具烧录至硬件。

2025-05-06 09:45:58 982

原创 嵌软笔记名词汇总

ADK 是面向应用层开发的工具包,通常针对特定功能或生态系统(如语音助手、物联网平台),提供高级API、框架和集成工具,帮助开发者快速实现复杂功能。

2025-05-05 14:12:41 815

原创 PDM协议---音频数据接收

脉冲密度调制。

2025-04-30 10:37:17 752

原创 I2S音频模块结构设计

二、采样频率:11.025,22.05,24,44.1,48,96KHz。七、数据采样:sclk下降沿发,上升沿收数据。五、传输位宽:8,12,16,24,32。六、传输声道:左声道、右声道、立体声。四、传输格式:左对齐、右对齐、标准。实现音乐播放器音乐播放。三、主时钟:Mclk。

2025-04-27 16:07:25 239

原创 嵌入式硬件开发工具---万用表---示波器---仿真器

带宽---大白话可能要说它能处理的最高频率信号,比如听音乐时的高音部分,如果带宽不够,高音就听不清了。专业解释的话,可能涉及-3dB衰减点,也就是信号幅度下降到70.7%时的频率,这是示波器能准确显示的最高频率。专业上就是存储的采样点数,存储深度大,可以在高采样率下捕获更长时间的信号,或者在长时间记录时保持足够的细节。原理:以一定的采样频率(如10MHz),对超过阈值(如高于1.5V)认为逻辑1,反之认为逻辑0,而后按采样点按逻辑连接,呈现的波形。其他----电容、频率、温度----特殊的万用表。

2025-04-26 14:24:07 1797

原创 解决stm32引脚如果选择输入模式

引脚直接连接到ADC(模数转换器)或比较器输入,不经过施密特触发器。配置为模拟输入时,GPIO的其他功能(如复用功能)自动失效。引脚内部不连接上拉或下拉电阻,完全由外部电路决定电平状态。若引脚悬空(无外部驱动),电平可能不稳定(易受噪声干扰)。引脚内部通过上拉电阻(约20kΩ~50kΩ)连接到VDD。引脚内部通过下拉电阻(约20kΩ~50kΩ)连接到GND。:用于模拟信号输入,直接连接到ADC,不进行数字信号处理。默认电平由内部电阻决定,可简化电路设计(省去外部电阻)。

2025-03-21 20:44:20 1318

原创 PWM控制电机转速的原理及相关寄存器值计算

(高电平时间与周期的比值)来改变电机的平均电压,从而实现转速控制。:决定占空比(高电平时间),捕获/比较寄存器)则设置占空比,因为当计数器达到CCR值时,输出电平会翻转,从而改变高电平的时间。fTIM​:定时器时钟频率(STM32通常为72MHz、48MHz等)。常见范围:1kHz ~ 20kHz(根据电机类型调整)。:(自动重装载寄存器)决定PWM的周期(最大值)。频率过高:开关损耗增加(但电机响应更平滑)。:(预分频器)分频定时器时钟,调整计数速度。​,ARR越大分辨率越高,但频率会降低。

2025-03-20 17:28:25 1080 1

原创 论枚举和结构体以及共用体的使用

数据类型使用条件优点缺点枚举需要一组有意义的命名常量增强代码可读性本质仍是整型,类型不安全结构体需要组合多个不同类型数据数据组织清晰,支持复杂结构内存占用较大共用体需要内存复用或类型转换节省内存,灵活解析数据数据覆盖风险高。

2025-03-20 11:36:09 431

原创 论冒泡和快排

就像一群人按身高排队,从左到右两两比较,高的往后站。每一轮结束,最高的人就站到了最后。下一轮不用管最后的人,继续从头开始比,直到所有人排好。就像整理书架,先随便挑一本书当“分界线”,把比它薄的书放左边,厚的放右边。然后左右两堆书各自再按同样方法整理,直到所有书排好顺序。快速排序像“聪明人拆解问题”,冒泡排序像“老实人一步步来”。:像“煮开水冒泡”一样把最大的数推到末尾。每轮结束后,最大的数会“沉”到最后。把比基准值小的扔左边,大的扔右边。5和3比 → 交换 →。8和4比 → 交换 →。

2025-03-19 16:41:09 421

原创 论数据结构

(Algorithms + Data Structures = Programs),并凭借其摘得图灵奖,该公式之后也成为计算机领域人尽皆知的名言。1984 年获得图灵奖,1992 年当选瑞士工程院院士,1994 年当选美国国家工程院外籍院士,1999 年 4 月退休。队列(Queue):也是操作受限的线性表,限制为仅允许在表的一端进行插入(` (FILO,First In Last Out)的线性表。组成,每个结点包含一个数据元素和一个指向下一个结点的。,不管何种语言,最先被调用的一定最后返回。

2025-03-19 14:56:14 573

原创 C语言论指针

需要注意的是,指针相减的结果会自动转化为整形,这是因为指针算术运算的结果类型是整数。具体来说,如果指针p指向数组a[i],指针q指向数组a[j],那么p-q的结果就等于i-j,即两个元素之间的索引差。指针之间可以进行比较运算,如 ==、<、 <= 、 >、 >=,比较的是各自指向的内存地址的大小,返回值是 int 类型整数 1 (true)或 0 (false)。低位地址减去高位地址,返回的是负值。符号 * 用于通知系统,这里定义的是一个指针变量,通常跟在类型关键字的后面,表示指针指向的是什么类型的值。

2025-03-18 23:02:53 606

原创 C语言 常用系统函数

相比于 printf(),多了一个参数,第一个参数是要写入的字符串,后面参数与 printf() 一致。sscanf(),用于从一个字符串中按照指定的格式提取数据。相比于 scanf(),多了一个参数,第一个参数是要提取数据的字符串,后面参数与 scanf() 一致。time_t 是C语言中用于表示时间值的数据类型,它通常是一个整数类型(int 或 long 或 long long),用于存储时间戳。返回两个时间值的差,返回值是 double 类型,时间值需是 time_t 类型。将str2中的字符串。

2025-03-18 20:21:15 475

原创 C语言论递归函数及其本质

它强制递归函数先解决最小的问题,再逐层回溯解决更大的问题。这种机制虽然直观,但需要警惕栈溢出的风险(例如无终止条件的递归)。:递归就是“把大象装进冰箱,但冰箱里还有一个冰箱,直到遇到一个空冰箱”——关键在于找到终止条件,否则永远装不完!:每次数一张,然后把剩下的钞票交给“另一个人”用同样的方法数(实际上还是你自己数,但问题规模变小了)。如果递归太深(比如没有终止条件),栈会被塞满,导致程序崩溃(Stack Overflow)。一个函数在函数体内又调用了本身,我们称为递归调用,这样的函数就是递归函数。

2025-03-18 20:05:03 170

原创 C语言 论static和extern关键字

使用 static 关键字修饰的全局变量称为静态全局变量。普通全局变量对整个工程可见,其他文件中,使用extern外部声明后,可以直接使用。静态全局变量仅对当前文件可见,其他文件不可访问,其他文件中可以定义与其同名的变量,两者互不影响。静态全局变量对于需要编译多个源代码文件的程序,能够有效地降低源文件之间的耦合,避免不同文件同名变量的冲突。

2025-03-18 19:44:14 211

原创 C语言 循环控制语句

(1)do...while循环是先执行循环体语句,然后再进行循环条件判断,但只有第一次循环语句的执行没有经过判断,以后的每一次仍然先经过判断。不确定循环直到循环表达式不成立之前,不确定循环次数,不需要循环变量。do_while循环至少执行一次,while循环有可能一次都不执行。当循环条件成立时执行循环体语句,直到循环条件不满足时退出循环。实现需求:输入5位数密码,直到密码匹配成功结束循环。实现需求:输入5位数密码,直到密码匹配成功结束循环。

2025-03-18 15:47:28 237

原创 C语言获取数据存储大小

使用sizeof 可以获取数据类型或变量字面量的存储大小,单位是字节。sizeof返回一个size_t类型的无符号整数值,格式占位符是%zu。size_t 通常是 unsigned int 或 unsigned long 的别名,具体是哪个类型的别名,由系统和编译器决定。

2025-03-18 15:21:36 206

嵌入式软件开发,经典串口调试工具

串口调试工具

2025-05-07

chatbox软件压缩包

可以用chatbox软件在本地调用deepseek的api

2025-03-06

CCleaner用来清理注册表

CCleaner用来清理注册表

2025-03-12

Xftp 8用于windows与Linux传输文件

用于windows与Linux传输文件

2025-03-12

自动删除hal库spendsv、svc以及systick中断

自动删除hal库spendsv、svc以及systick中断

2025-02-27

FreeRTOS的源码文件

FreeRTOS的源码文件

2025-02-27

ESP-IDF包含了编译器,汇编器,链接器,调试器,烧写器

围绕 ESP32-C3 构建固件---VSCode + esp-idf插件/命令行 ESP-IDF包括 - 编译工具:将c程序编译成可以运行在esp32上面的risc-v指令集的可执行文件的gcc编译器,链接器,汇编器 - 调试工具:gdb(gnu debugger) - 烧写软件:openocd - 项目管理工具:python/git/CMake/Makefile,项目管理工具的作用是:不需要写复杂的编译命令以及烧写命令等等,用来简化开发流程。

2025-02-18

空空如也

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

TA关注的人

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