自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓学课堂

卓学,为工作而学!专注嵌入式、上位机软件,电子方面的基础知识应用和项目实战

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

原创 嵌入式存储模块介绍(flash,sd卡,u盘,eeprom,sdram)

先来看看普通SD卡。普通SD卡有9个引脚,使其反面朝上,最左边为9号引脚,然后从左到右依次是1号~8号,如下图:前面我们说过,SD卡有两种模式:SD模式(也称为SDIO模式)和SPI(Serial Peripheral Interface)模式,这两种模式的引脚定义是不同的。在SD模式下,通常可以使用四根数据线进行传输(4-bits Data),传输速度非常快。四位数据传输要使用引脚1、7、8和9(DAT0~DAT3);

2024-07-19 10:00:12 214

原创 IIC总线协议详解

E2PROM的地址指针会自动递增,数据会依次保存在内存中。在起始信号后必须传送一个从机的地址(7位) 1~7位为7位接收器件地址,第8位为读写位,用“0”表示主机发送数据(W),“1”表示主机接收数据 (R), 第9位为ACK应答位,紧接着的为第一个数据字节,然后是一位应答位,后面继续第2个数据字节。E2PROM会自动向主机发送数据,主机读取从器件发回的数据,在读一个字节后,MCU会回应一个应答信号(ACK)后,E2PROM会继续传输下一个地址的数据,MCU不断回应应答信号可以不断读取内存的数据。

2024-07-12 15:49:12 836

原创 SPI、QSPI协议介绍

QSPI (QuadSPI)时序协议, 以及DSPI(Dual SPI), 基于SPI进行了扩展. 但CSn、Clock功能以及时钟模式、时钟频率等与时序协议与SPI 类似. 依然是同步、串行协议. 但其工作模式发生了些变化. 在DSPI/QSPI 模式下, 数据线不再是全双工模式。

2024-07-12 14:42:47 670

原创 FreeRTOS和UCOS操作系统使用笔记

内建信号量。

2024-07-03 17:37:51 263

原创 嵌入式软件开发工具使用介绍

串口数据解码分析。

2024-06-25 17:50:05 153

原创 音频编解码、数据流、音效处理

数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。// 数据流节点初始化// 打开解码任务// 打开eq// 打开DAC// 创建数据流// 数据流串联音效处理就是把一段音频进行二次编辑,达到改变音乐风格等目的。

2024-06-18 16:54:12 751

原创 音频基础知识和音频指标

声音(sound)是由物体振动产生的声波。物体在一秒钟之内振动的次数叫做频率,单位是赫兹,字母Hz。人耳可以识别的声音频率在 20 Hz~20000 Hz之间;响度,又称声强或音量,它表示的是声音能量的强弱程度,主要取决于声波振幅的大小。音高也称音调,表示人耳对声音调子高低的主观感受。客观上音高大小主要取决于声波基频的高低,频率高则音调高,反之则低。音色又称音品,由声音波形的谐波频谱和包络决定。

2024-06-18 15:46:39 917

原创 电子硬件开发工具介绍

(Autodesk Computer Aided Design),导出 DXF 格式(用于与其他软件进行数据交互)

2024-06-18 15:15:47 837

原创 电子基础元器件介绍

磁珠是用来吸收超高频信号,像一些 RF 电路,PLL,振荡电路,含超高频存储器电路(DDR SDRAM, RAMBUS 等)都需要在电源输入部分加磁珠,而电感是一种蓄能元件,用在 LC 振荡电路,中低频的滤波电路等,其应用频率范围很少超过 50MHZ。(电压控制,注意寄生电容)(常用增强型,注意结电容,导通内置,耐压值等),常用功能:开关,电平转换。水泥电阻、可调、排阻、光敏、热敏 NTC(使用技巧)、PPTC 自恢复保险丝。电解、胆(耐压值)、材料:NPO/CBB/XR7(无线充电器 NPO 电容)

2024-06-18 14:20:09 572

原创 音频处理软件adobe audition使用教程

信号路由:就是混音器向右的箭头就是输入,信号进入轨道后,经过一些列的效果器,发送效果器,经过调节信号的推子,再送到总线轨,总线轨最终输出到最终的输出通道,经过声卡的数模转换,最终从设备音响耳机放出来。按ctrl选择多个音频块,可以ctrl+c复制,然后ctrl+V粘贴;放大和缩小:点击图标,或者用滚轮放大缩小(AIT+滚轮),(ctrl+滚轮或按键盘+-号)横线放大和缩小。添加单声道轨道(人体一般是单声道,如果使用两个麦克风录音,那么就是立体声轨道)导入素材,文件-》导入素材,或者直接拖动进来文件!

2024-06-15 10:37:14 412

原创 数字音频接口之I2S总线协议详解

1、SDATA,也就是串行数据信号,使用二进制传输数字信号。请注意数据的传输形式为补码的方式2、例如音频的采样率是8K,一s内存采样8K个点,一个点包含一个左声道,一个右声道,所以LRCK是8K,BCLK是2×采样频率×采样位数3、同时双向(TX和RX)音频流:串行数据同步移位到时钟信号SCK和LRCK。在SCK的下降沿将TX数据写入SDOUT引脚,并在SCK的上升沿从SDIN引脚读取RX数据。始终首先发送最高有效位(MSB);TX和RX均可在主模式和从模式下使用。

2024-06-04 09:28:44 3326

原创 STM32 音乐播放器之音频入门实验(pwm、dac、.wav、.mp3)

简单的乐谱知识音调:音阶分为中音、高音、低音,点在上面为高音,没有点为中音,点在下面为低音音长:简谱对应音阶下无横线为一拍,有单横线为半拍,双横线为1/4拍。音阶数字后有点加半拍音长,有横线加一拍。对应曲谱可以搜索一下。2.普通dac播放wav文件(1)dac波形dac引脚的波形:接上106 10uf的电容,没接喇叭的波形:(2)pwm波形pwm引脚波形:经过1uF电容的波形:再经过1uf电容的波形(后输入功放): 功放出来喇叭差分的波形:

2024-06-03 17:40:45 566

原创 python常见使用案例

(3)打印C数组,或者保存为.c或者.txt等文件。(1)读取.bin文件数据。(2)生成C语言数组定义。

2024-06-02 23:27:33 230

原创 音频信号分析与实践

音频信号分析与实践课程,方便理解音频信号原理和过程。

2024-06-01 21:53:02 387

原创 大小变化,方向始终不变的脉动电流流过电容

我们看图4左侧的上方的的Usr方波图,图中的方波左侧是垂直线上升沿,中间是方波高电平保持水平线,右侧是方波的垂直下降沿。对于曲线3,它的左半部分曲线变化较大,越往右曲线越平缓,故左半部分会产生电容电流,而右半部分电容电流越来越小,直至Ic=0、和C2就是图1和图3中的电容C,不过这里的二极管D1和D2是反向的,它只允许负脉冲通过并使得已经饱和的晶体管趋于截止。对于曲线1,它是一条水平线,dU/dt=0,故Ic=0,故稳态的直流电是无法通过电容的。我们再看通过电容的电流,我们设此刻为t=0,因为。

2024-05-31 09:29:03 797

原创 音频功放的种类和基本原理

功率放大器简称功放,它是将小信号放大,这个放大包括电压和电流,产生更大的功率去推动音响放声。在技术发展过程中,产生了不同类型的功放种类,按照功率管的导电方式,可以分为甲类功放(又称A类)、乙类功放(又称B类)、甲乙类功放(又称AB类)和丁类 功放功放(又称D类)。

2024-05-27 09:41:25 1044

原创 MIC工作原理(驻极体麦克风)

平行板电容器的两个极是接到FET的S极和G极,因此相当于FET的S极和G极之间加了一个ΔVgs的变化量,FET的漏极电流I就产生一个ΔId的变化量,因此这个电流的变化量就在电阻RL上产生一个ΔVd的变化量,这个电压的变化量就可以通过电容C输出,这个电压的变化量是由声压引起的,因此整个麦克风传感器就完成了一个声电的转换过程,将声音信号转化为电信号输出。当振膜收到声压作用时产生振动,从而改变振膜与背极板之间的距离d,于是产生了Δd的变化,由公式(1)可知,其必然产生ΔC的变化,也就是。

2024-05-27 09:12:39 806

原创 嵌入式之音频基础知识汇总

3.5mm插头是指直径为3.5mm的同轴音频插头;从端部到根部依次是左声道、右声道、地线,其中左声道常用红色线皮,右声道常用白色的;下图使用的是国际标准;线控类型大致有这几种,音量滑块带麦线控、单键带麦和多键带麦。原理电路图上不难看出,不同的按键下串入了不同的电阻,当按键被按下后不同的电阻被接入到了回路当中,麦克风正极接收到的信号也随之发生改变;手机判断用户对线控做了哪些操作都是通过麦克风正极输入的信号变化来判断的。

2024-05-25 22:58:38 1239

原创 STM32 cubemx hal库huart串口接收不到第一帧数据或数据全为0的问题

以下2行代码,防止到void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)函数内初始化了;此时串口还未初始化成功,就会造成上述问题。把这两行代码放置HAL_UART_Init(&huart3)初始化函数之后进行初始化即可!每次上电后,串口接收第一帧数据全部都为0,第二帧及以后接收的数据都是正确。搭建stm32串口dma通讯的工程.存在问题的stm32工程是使用。

2024-04-24 18:47:09 523

原创 批处理中setlocal enabledelayedexpansion的作用详细整理

setlocal enabledelayedexpansion 是什么意思?是:设置本地为延迟扩展。其实也就是:延迟变量,全称"延迟环境变量扩展",在cmd执行命令前会对脚本进行预处理,其中有一个过程是变量识别过程,在这个过程中,如果有两个%括起来的如%value%类似这样的变量,就会对其进行识别,并且查找这个变量对应的值,再而将值替换掉这个变量,这个替换值的过程,就叫做变量扩展,然后再执行命令。在解释之前,先看几个例子的区别:例一:12setecho%value%

2024-04-10 10:43:47 1130

原创 批处理.bat脚本入门详细使用教程

表示关闭批处理文件自身的回显,即执行此句之后的命令不会显示出来,只有输出结果会被显示。表示关闭命令回显功能,即命令执行时不在屏幕上输出命令本身,只输出命令的执行结果。echo 在屏幕上输出命令本身,也输出命令的执行结果(在terminal上显示)如下,带@echo off,所有的执行的命令都不显示了,显示执行命令后的结果。整体的理解就是 执行的命令不显示了,显示执行命令后的结果。如下,不带@echo off。

2024-04-09 19:22:44 1451

原创 QT中的文件操作QFile、QDataStream、QTextStream、QBuffer、QDir

1、Qt中IO操作的处理方式(1)、Qt通过统一的接口简化了文件与外部设备的操作方式(2)、Qt中的文件被看做是一种特殊的外部设备(3)、Qt中的文件操作与外部设备操作相同2、IO操作中的关键函数接口注意:IO操作的本质:连续存储空间的数据读写3、Qt中IO设备类型(1)、顺序存储设备:只能从头开始顺序读写数据,不能指定数据的读写位置(串口)(2)、随机存储设备:可以定位到任意位置进行数据读写(seek function函数)(文件)4、Qt中IO设备 的继承层次图5、QT文件操作类型 QFile是Qt中用

2024-03-30 20:26:38 577

原创 Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

在 Windows 操作系统中,程序图标一般会涉及三个地方;(1) 可执行程序(以及对应的快捷方式)的图标(2) 程序界面标题栏图标(3)程序在任务栏中的图标。

2024-03-27 15:57:00 3593

原创 QT常见Layout布局器使用

为什么要布局?通过布局拖动不影响鼠标拖动窗口的效果等优点.QT设计器布局比较固定,不方便后期修改和维护;在Qt里面布局分为四个大类 :盒子布局:QBoxLayout网格布局:表单布局:抽屉布局:QBoxLayout一般使用它的两个子类和负责水平和垂直布局//注意MainWindow不能直接进行布局//增加一个伸缩量//增加一个伸缩量//增加一个伸缩量this->setWindowTitle("水平布局");//增加一个伸缩量。

2024-03-24 19:49:16 546

原创 QT常见数据类型和类的使用

QByteArray 是一个Qt框架中的类,它是一个可变长的字节数组,可以用于存储任意类型的数据,包括二进制数据和文本数据// 创建数组// 空的字节数组// 初始化为字符串// 等同于上面的初始化方式// 创建一个长度为10的空字节数组//访问 QByteArray 中的数据:// 获取字节数组的指针// 获取字节数组的长度// 获取字节数组中指定位置的字节//将 QByteArray 转换为 QString// 方法1。

2024-03-21 09:40:05 849

原创 QT窗口和坐标体系

6.QT常见类介绍和使用。8.Qt消息机制和事件。9.Socket通信。

2024-03-17 22:14:06 417

原创 Makefile从入门到项目编译实战(学习笔记)

1.make和makefile介绍2.makefile的结构3.程序编译流程详解4.makefile脚本运行流程介绍5.makefile伪目标和模式匹配6.makefile中的变量7.makefile条件判断和循环语句8.makefile函数定义和调用9.makefile调用shell命令10.makefile嵌套调用11.makefile路径搜索12.makefile同样部分做公共头文件13.makefile编译静态链

2024-02-29 11:27:51 512

原创 QT GUI编程常用控件学习

QtCore: 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用QtGui: 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类QtWidgets: 包含了一些列创建桌面应用的UI元素 一个程序界面上的各个独立的元素,如一块矩形区域;具备不同的功能,包括:用户点击,接收用户输入、展示内容;存放其他控件等;常用控件如下:按钮:QPushButton、QCommandLinkButton、QRadioButton、QCheckBox;输入控

2024-02-25 20:15:19 1070

原创 1.QT简介(介绍、安装,项目创建等)

Qt(官方发音[kju:t])是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序Qt 是纯 C++ 开发的,正常情况下需要先学习C语言、然后在学习C++然后才能使用Qt开发带界面的程序2.QT下载安装可以根据需要下载对应的版本,首次学习,可以选择一个window版本的安装包进行下载安装,如下载静态安装动态安装(1)双击下载好的 “注册账号。

2024-02-24 22:33:50 1725

原创 嵌入式硬件基础知识LDO-DCDC电路笔记

LDO(Low Dropout Regulator,低压差线性稳压器)。这是相对于传统的线性稳压器来说的。传统的线性稳压器,如78XX系列的芯片都要求输入电压要比输出电压至少高出2V~3V,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5V转3.3V,输入与输出之间的压差只有1.7v,显然这是不满足传统线性稳压器的工作条件的。针对这种情况,芯片制造商们才研发出了LDO类的电压转换芯片。常见的有AMS1117,输入输出最小压差1.2V;LM7805,输入输出最小压差2V。

2024-02-03 16:00:27 676

原创 无线蓝牙耳机TWS常见参数详解

aptX HD 则主打高清音频,它基于经典 aptX 增加了通道,支持 24 bit 48KHz 的音频格式,传输速率大幅增加,并且有着更低的信噪比和更少的失真,提供 “优于 CD” 的聆听体验,可以让你在使用无线蓝牙设备的时候,也能享受无与伦比的聆听体验。Active Noise Cancellation(主动降噪)的工作原理是麦克风收集外部的环境噪音,然后系统变换为一个反相的声波加到喇叭端,最终人耳听到的声音是:环境噪音+反相的环境噪音,两种噪音叠加从而实现感官上的噪音降低,受益人是自己;

2024-01-15 10:03:01 959

原创 Qt静态链接库(.lib .a)、动态链接库(.dll)创建和使用教程

先对库进行介绍,后对Qt静态链接库(.lib .a)、动态链接库(.dll)进行创建和使用的介绍! 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓静态、动态是指链接。回顾一下,将一个程序编译成可执行程序的步骤:之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引

2024-01-02 16:00:17 6558 1

原创 QT静态编译安装详细教程(亲测可用)

如需要开发一个不带运行库的程序,也就是只有一个单独的exe,不带任何dll。然而qt官方提供的都是动态库,所以需要自己搭环境编译静态库。在此,解释一库是什么,动态库是什么,静态库是什么。

2023-12-31 16:28:14 1967

原创 Qt Creator项目多工程结构创建subdirs和.pri结构使用教程

在开发大型项目时,为了避免项目过于臃肿,便于理解、维护,往往会将项目拆分为多个工程。多个工程可以保护相同的.lib库文件和头文件,可以同时执行qmake 和构建,方便维护管理。

2023-12-29 16:05:52 1009 1

原创 zsh、vim、Bash Shell使用教程

grep介绍.如果你想在当前目录下 查找"hello,world!

2023-08-30 19:43:34 166

原创 批处理.bat详细教程

~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录。cd /d "%~dp0"的意思就是cd /d d:\qq。比如你有个批处理a.bat在D:\qq文件夹下。%0代表批处理本身 d:\qq\a.bat。dp就是扩充到分区号路径 d:\qq。p就是扩充到路径 \qq。

2023-08-09 11:44:08 781

原创 单片机运行原理(含bss_data_text段,.ld链接文件,startup.S启动文件介绍)

程序代码(.s 和 .c)源文件会经过预编译、编译、汇编、链接最后生成目标可执行文件,.ld文件是作用在链接过程。链接的作用是:linker_flash.ld:Flash和SRAM内存分配,为Flash构建目标分配代码段和数据段;linker_ram.ld:SRAM内存分配,为RAM构建目标分配代码段和数据段。可以利用.ld文件将函数和变量放置到自定义的地址中。2 常用的关键词介绍ENTRY命令:运行一个程序时第一个被执行到的指令的"入口点"。MEMORY命令:内存块配置命令,一个连接脚本最多一个’MEMO

2023-07-17 13:59:30 2300 1

原创 git版本管理工具详细教程和常见工作场景介绍

1 git简介2 Git使用环境安装与基本使用3 git 各使用场景操作说明4 git submode5 repo 介绍6 代码评审及工具介绍7 图形化操作介绍8 git服务器搭建9 其它介绍与问题处理

2023-07-07 19:15:50 2021 1

原创 《C语言进阶剖析》9.预处理与编译原理

(1)#pragma是一条预处理器指令(2)#pragma指令比较依赖于具体的编译器,在不同的编译器之间不具有可移植性,表现为两点:① 编译器A支持的#pragma指令在编译器B中也许并不支持,如果编译器B碰到这条不认识的指令就会忽略它。比如下文中介绍的指令,gcc编译器和VS编译器是支持的,但bcc编译器就不支持。② 同一条#pragma指令,不同的编译器可能会有不同的解读。#pragmaparameter//注意,不同的parameter参数语法和含义是不同的。

2023-06-20 12:18:12 285

原创 《C语言进阶剖析》7.结构体共用体(位域)与枚举

(1)enum是C语言中的一种自定义类型,和structunion// enum每个值的最后以逗号结尾GREEN,RED,BLUE==> 输出的结果为4,表明enum类型的变量占用4字节(2)enum定义的第一个值默认情况下为0,后一个的值在前一个值的基础上加1(3)enum在程序中有两种用法: ① 定义常量 ② 定义离散的整型值类型(4)enum中定义的值是C语言中真正意义的常量,在工程中enum多用于定义整型常量。下面的enum没有名字,不能用来定义枚举变量,仅仅用来定义常量。

2023-06-19 20:20:14 105

文字编写测试文字编写测试

文字编写测试文字编写测试

2023-06-08

空空如也

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

TA关注的人

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