- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 音频降采样深度bit depth crushing:12bits,8bits
先将信号乘 2^(8-1)放大,然后用 ceil 或者 floor函数对齐。大概思路是,比如要将一个 -1 到 1的信号,模拟降到 8bits的效果。那么根据数据正负,比如数据为正,直接 &= 0xff00,将低八位忽略。然后将信号除以 2^(8-1) , 返回到原来的幅度。比如要将一个16bits的信号,降到8bits。首先数据分成浮点类型,或者是定点类型。
2022-11-08 17:37:49
347
原创 音频信号处理
当收到DMA TRANSMITTED COMPLETE时,就可以对 4,5,6,7的数据进行处理,然后就可以发送 0,1,2,3的数据。网页图示:https://www.earlevel.com/main/2021/09/02/biquad-calculator-v3/求卷积的过程是,把原信号和cosx相乘,比如原信号是一个sinx,那么当测试信号cosx移动90度时,两者相乘后的函数,在周期内的积分不为0,且达到最大值,这个最大值就是测试信号对原信号的贡献,该角度就是测试信号的相位。
2022-11-07 19:07:40
890
原创 编码器的使用和类别
两种类型的编码器旋转一格,电平变换:高到低,低到高旋转一格,电平短暂的变低驱动方式定时扫描,用查表的方式中断,判断另一脚的电平用定时器的正交编码器模式
2021-10-29 11:43:07
233
原创 USB协议
USB总线工作原理 一、问:当一个USB设备插入PC机,PC机怎么知道有设备插入? 答:如图1-1和图1-2所示,USB接口只有4条线: VCC(5V),GND,D-,D+。 PC机的USB插孔的D-和D+数据线均连接15K欧姆的下拉电阻。而USB设备端的D-或D+数据线连接1.5K欧姆的上拉电阻。当设备插入PC机的时候,会将PC机的D-或D+端的电压拉高,当PC机在D-或D+端检测到高电平时...
2020-09-13 21:19:26
972
原创 I2S学习
一. I2S物理接口SCLK(BCLK)时钟信号WS(LRCK)声道选择,1是左声道,0是右声道SDATAZ(DOUT)来传送数据MCLKMCLK = fs * sample_rate =三种对齐方式左对齐I2S格式右对齐(日本格式)总线上只有一个主设备和发设备采样率32kHz ,44.1kHz,48kHz,96kHz,192kHz...
2020-01-29 19:13:56
725
原创 Linker Script参考
/*STACK SIZE MACRO DEFINITIONS/#define M_USER_STACK_SIZE 0x2800 / Multiple of 8 bytes - 6KB /#define M_PREV_STACK_SIZE 0x50 / Multiple of 8 bytes - 16B *//*LINKER OPTIONS/–entry_po...
2020-01-09 10:03:31
453
原创 css 语法
如何让padding不影响块级元素的width和heightbox-sizing:border-box; css添加这个属性之后,设置的padding值会在内部显示,不会影响外部大小我们通常一个块级元素实际所占宽高度=外边距(margin)+ 边界宽度(border-width) + 内边距(padding)+高度(height) / 宽度(width)如果设置了border-box...
2019-09-11 14:18:45
201
原创 Git使用
Tortoise Git 是用做代替自带的Git图形界面repository 仓库创建仓库使用Git GUI Here Create New Repository使用Git Bash 输入命令: git init使用TortoiseGit 右键.git文件夹为本地仓库包含这个.git的目录为工作目录若想要向仓库添加文件,工作目录必须要在 包含.git的目录下...
2019-08-29 17:30:58
285
原创 C语言编码规范
data 分为 temporary(stack中) 和 static(编译后便分配了地址)pre-compilelink timepost build 只需编译这个文件,然后链接即可#define 也分模块内使用 和 所有模块都可以引用const同 #definea: arrayb: booleanc: charg: globalu: unsignedp: pointer...
2019-08-03 00:27:37
270
原创 JavaScript语法
1. concat()连接两个或多个数组2. pushhttps://www.runoob.com/jsref/jsref-push.html3. setData(来自微信小程序)setData 函数用于将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值无法显示下载下来的图...
2019-06-30 20:50:08
174
原创 微信小程序学习笔记
lib下是公用的一些文件app.js 小程序第一个运行的代码app.json 小程序的页面的样子定义,窗口颜色的定义app.wxss 小程序公用的一些变量project.config.json 开发者使用的一些配置(比如编译)...
2019-03-31 23:29:34
312
原创 CRC校验的概念 和 C语言代码
异或 运算的概念首先掌握CRC要先明白异或的概念在C语言里面是 ^ 这个符号然后是 模2除法比如 1100 0000如何确定需要多少位校验位n为数据的位数r 为校验位的位数两者关系应该满足n + r <= 2^r -1...
2018-12-25 00:09:48
389
原创 CAN总线
CAN总线与其他总线的关系CAN协议的差分信号CAN协议通过调节PBS1段 和 PBS2段来抵抗干扰SS段(SYNC SEG)用作同步,一般为1Tq长,若跳边沿处在SS段内,则认为通讯是同步的。若跳边沿落在第二个Tq时,与设备认为的时序不同,所以将采样点后移一个TqPTS段(PROP SEG)传播时间段,用来补偿网络的物理网络延迟时间,一般为1-8TqPBS1段(PHASE S...
2018-12-18 16:50:53
4841
原创 MakeFile
$@ – 目标文件$^ – 所有的依赖文件$&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; – 第一个依赖文件。#为注释%.o%.c 以上两个命令将.c文件转换为同名的.o 文件shell命令,用来找到所有的.c和.h文件 deps = $(shell find ./ -name “.h&amp;amp;amp;amp;amp;amp;amp;amp;amp
2018-12-12 17:39:26
301
原创 AUTOSAR Automotive Open System Architecture
ECU 行车电脑AUTOSAR 软件架构应用软件层 ApplicationSoftWare软件组件SWC数据交互层 RunTimeEnvironment (RTE)StandardizedInterface (标准接口)StandardizedAUTOSAR Interface(标准AUTOSAR接口)AUTOSARInterface(AUTOSAR接口)基础软件层 ...
2018-12-10 14:55:31
668
原创 启动文件的作用
1. 初始化栈顶指针SP定义 Stack_Size 为 1KB汇编一个数据段 名称是 STACK,不要初始化,读写,8Bytes对齐SPACE分配一个(Stack_Size)1KB的空间__initial_sp表示栈顶指针__heap_base是堆的基地址,__heap_limit是堆的顶部PRESERVE8为当前文件的堆 和 栈按照8字节对齐使用THUMB指令集; Vec...
2018-11-27 23:02:50
1926
原创 编译脚本
http://www.bravegnu.org/gnu-eprog/linker.htmlhttp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_toc.html
2018-11-27 18:14:27
2310
原创 传输层的TCP协议
源端口:目的端口:序号:本报文所发送的数据部分的第一个字节的序号确认号:期望收到的下一个报文首部序号字段的值数据偏移:TCP首部的长度,单位是4字节,一般为5URG:为1的话表示本报文包含紧急数据,和紧急指针联合使用ACK:确认号字段,ACK为1时,序号不增加,为0时表示报文不包含确认信息,即确认号字段无效PSH:尽快将数据交给应用程序,不用等缓存满再交RST:连接出现错误,必...
2018-11-27 18:13:09
357
原创 网络层 和 传输层
网络层只是负责传输,把数据交给指定的目标,传输层用来把收到的数据,根据协议分发给各个应用TSAP: 端口NSAP: IP数据报的协议号字段端口:数据发送时,向下交付给传输层;接收数据时,向上交付给应用层套接字:五元组用来标识通信双方唯一的连接,端口在TCP 或者 UDP上;IP地址和传输协议取自IP数据报Wireshark较低层只是转发传输层再处理对错当使用UD...
2018-11-27 00:34:28
1873
原创 网络协议
IP地址:前缀+后缀前缀+后缀 = 32bit点分十进制:将32bit转换成4个8bit的十进制数网络地址用 131.11.0.0广播地址用 131.11.255.255A类的网络号为2^7 -2 (减去全0 和 环回地址127)所以A类网络中主机最多为2^24-2B类为2^16-2C类为2^8-2ICANN本地ISP 中国电信R:Router路由器H:Host主机...
2018-11-26 00:41:16
454
原创 C语言小知识
1. malloc的使用char *p = (char *)malloc(0);debugprintf(&amp;quot;p= %p\r\n&amp;quot;,p);以上输出结果不为NULL2. volatile的使用a. 用于获取或者改写寄存器的值时 *(volatile U32*)r_tpcon = 1&amp;amp;lt;&amp;amp;lt;1;b. 中断里访问的变量c.3. con
2018-11-14 18:00:31
256
1
原创 NAND FLASH 与 SPI FLASH的区别
NAND FLASH一个block为128KByteSPI_FLASH一个block为64KByte一个block = 16 sector(扇区)1 sector = 4KByte最小擦除4KByte
2018-11-14 00:23:30
10647
原创 SPI通讯
特点:全双工,单主机多从机,数据格式为8bit,数据传输高位在前,低位在后SPI一共四根引脚,分别为(1)CS:片选信号,固定使用的话可以硬件上直接拉低(2)SCK:时钟信号,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据,也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制(3)MOSI:Master Out Slave In / Serial Data...
2018-11-08 11:35:45
4075
原创 IIC通讯
几个原则:IIC通信,高位在先,低位在后开始信号在时钟信号线为为高时,拉低SDA结束信号Ack信号ACK信号为每次传输8bit(1字节)数据后,必须要有的响应信号,由接收方来发出在SCK为高时(一个脉冲内),将SDA拉低(管脚开漏输出只能拉低,来表示回复)NACK信号在SCK为高时(一个脉冲内),将SDA置高(管脚开漏输出只能拉低,不操作时默认为高电平)写数据设备地址:设...
2018-11-07 17:35:58
13157
1
原创 存储的乒乓操作
首先,要明确的是,数据写的过程包括擦除,下图为NAND FLASH一个block(128K+7K)的时间,若擦除时被打断,数据会残缺写入,下图为NAND FLASH写入一个page(2K+112Byte)的时间,所以一个block的写入需要64 x 300us = 19.2ms 的时间,若写入时被打断,数据会残缺数据读的过程时间不计,因为读过程被打断,并不会造成数据的损坏综...
2018-11-05 14:12:35
6162
原创 上拉电阻 以及 阻抗匹配
如上图,这是UART通信部分原理图,先分析一下TX0部分的电路,图上TX0是从芯片直接引出来,左边四PIN的J7是接到外部设备的插针, 1. 当TX0输出低电平时,由于D2阳极电压大于阴极,且压差满足导通(肖基特二极管,导通压降0.2V),所以D2导通,这时J7 PIN3处的电压,为接收者的收到的电压,不过接收一般会在RX电路上串联电阻,起保护作用,所以涉及到 电平匹配问题,TTL接收方的低...
2018-11-02 18:05:06
4968
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人