- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 FM1288调试过程(符调试参数)
1、用了FM1288做对讲,需要回音消除,噪音抑制等功能2、买了FM1288芯片,音频输入流程为:mic-->iis ,输出流程:iis-->spk3、主机为A40i,通过iis和UART连接FM1288,UART用来配置参数,iis传输音频信号,先播放一首《夜的第七章》测试下。4、FM1288默认上电是不工作的,处于待机状态,需要配置启动才行,往22FB寄存器写0000即可启动 从待机到工作时,配置的参数结尾必须以22FB寄存器写0开可以启动,启动的标志是该寄存器写完后,2..
2021-04-14 17:19:01
2663
1
转载 使用__FILE__和__LINE__定位错误
[前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors 的文章,希望达到解惑之效。]问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?回答:在C++中的__FILE
2016-04-12 12:39:40
598
转载 SSL与TLS 区别 以及介绍
SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性
2016-04-07 09:16:39
714
转载 struct和typedef struct
文章转载自:http://www.cnblogs.com/qyaizs/articles/2039101.htmlstruct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a;
2016-04-01 14:13:17
374
转载 C语言详解 - 枚举类型
内容转载自:http://www.cnblogs.com/JCSU/articles/1299051.html注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#defi
2016-04-01 14:08:07
410
转载 void与void*详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一个真实的变量;void体现了
2016-03-31 09:35:09
506
转载 栈空间和堆空间
一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。 2、堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。 3、全局区(static):也叫静态数据内存空间,存储
2016-03-21 15:38:31
499
转载 简单理解Socket
文章转载自:http://www.cnblogs.com/dolphinX/p/3460545.htmlTCP/IP要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准,
2016-03-11 10:21:05
445
转载 STM32IAP升级-----编写IAP升级遇到的问题总结
本文转载自:http://www.aiuxian.com/article/p-3029296.htmlhttp://www.aiuxian.com/article/p-2010783.html一,串口通信问题1,串口通信两端的TTL电平要一致,看选用的芯片,要么都是3.3V要么都是5V。。当两端电平不一致时通常是收不到数据的。。当检测程序等都没有问题但是依然
2016-03-07 15:33:31
15651
4
转载 STM32 FSMC学习笔记+补充(LCD的FSMC配置)
FSMC全称“灵活的静态存储器控制器”。使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线。(1)当存储数据设为8位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b) 地址各位对应FSMC_A[25:0]
2016-02-29 17:38:01
1082
原创 IAR中使用printf总结
1、修改库文件2、1、option->C/C++ compiler--->defined symbols 下添加一行_DLIB_FILE_DESCRIPTOR2、printf重定向 int fputc(int ch, FILE *f){ USART_SendData(USART1, (u8) ch); while(
2016-02-29 09:22:08
17871
1
转载 enum与typedef enum的用法
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7 在此,我们定义一种新的数据类型,
2016-02-25 16:35:19
459
转载 STM32F4读写内部FLASH【使用库函数】
STM32F4Discovery开发帮使用的STM32F407VGT6芯片,内部FLASH有1M之多。平时写的代码,烧写完之后还有大量的剩余。有效利用这剩余的FLASH能存储不少数据。因此研究了一下STM32F4读写内部FLASH的一些操作。【STM32F4 内部Flash的一些信息】STM32F407VG的内部FLASH的地址是:0x08000000,大小是0x00100000。
2016-02-21 11:34:36
2599
转载 stm32 boot启动经验
不同的下载方式对应STM32启动方式也不同,如下图是STM32三种启动方式: ● 第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆! ● 第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在
2016-02-16 08:44:34
15990
转载 IAR 6.3中intrinsics.h与core_cm3.h 中的兼容错误解决方法
解决办法1:用IAR6.3打开IAR6.0 的工程,编译的时候出现提示错误:extern uint32_t __get_PSP(void); 已经在C:\Program Files\IAR Systems\Embedded Workbench 6.0\arm\inc\c\intrinsics.h文件中定义extern uint32_t __get_MSP(void);已经在C:\Pro
2016-01-26 09:52:58
2486
转载 TCP/IP、Http、Socket的区别
网络由下往上分为 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性, socket则是对TCP/IP协议的封装和应用(程序员层面上)。 也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,
2016-01-15 17:18:01
275
转载 stm32模拟iic——引脚配置、代码
我的工程里要用到iic总线扩展rom,stm32是有硬件iic的,但是,网上有很多人说这个硬件iic有漏洞,甚至于有bug。http://bbs.21ic.com/icview-184741-1-1.html http://blog.gkong.com/more.asp?name=zjcsharp&id=112878。《例说stm32》的表述是:“非常复杂,不太好用”。那么我判断这个硬件iic可能
2015-12-30 15:49:51
17439
4
转载 有源晶振与无源晶振的区别
简介电路中的有源晶振即石英晶体震荡器,简称晶振;无源晶振即石英晶体谐振器,简称晶体或水晶。由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准频率来控制电路中的频率的准确性。石英晶体震荡器的应用范围是非常广的,它质量等级、频率精度也是差别很大的。通讯系统用的信号发生器的信号源(震荡源),绝大部分也用的是石
2015-12-25 09:00:47
7893
转载 电源的输出纹波噪声究竟该取多少才合适?
在设计或应用电源时,大家都会关心电源的输出纹波噪声,但取多少合适呢?若要求放宽了,纹波噪声过大,电路不能正常工作,还费时间调试修改。要求高了,自然滤波器的成本上升,且可能变成是杀鸡用牛刀式的过度设计。本文引用地址:http://www.eepw.com.cn/article/264512.htm 下面根据一些常规的应用,推荐一些能容忍纹波噪声的值,可做一些参考。 1、 普通
2015-12-23 16:40:01
9611
原创 肖特基二极管和普通二极管的区别
肖特基二极管与普通二极管的区别 硅管的初始导通压降是0.5V左右,正常导通压降是0.7V左右,在接近极限电流情况下导通压降是1V左右;锗管的初始导通压降是0.2V左右,正常导通压降是0.3V左右,在接近极限电流情况下导通压降是0.4V左右,肖特基二极管的初始导通压降是0.4V左右,正常导通压降是0.5V左右,在接近极限电流情况下导通压降是0.8V左
2015-12-23 14:39:55
10057
转载 SWD 仿真
1) SWD 仿真模式概念简述先所说 SWD 和传统的调试方式有什么不一样:首先给大家介绍下经验之谈:(一): SWD 模式比 JTAG 在高速模式下面更加可靠. 在大数据量的情况下面 JTAG 下载 程序会失败, 但是 SWD 发生的几率会小很多. 基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器 支持. 所以推荐大家使用这个模式.(二):
2015-12-23 11:26:52
2585
转载 JLink、JTAG接口详细图解
说明:1脚:通常连接到目标板的vdd,用来检测目标系统是否供电;检测原理上图中有简单的说明。2脚:原版的JLink这个引脚没有使用,不提供Vsupply输出,而很多改造版的JLink通过跳线选择从该引脚输出3.3V的电压给外边,我的就是这样的。可以到网上找JLink的原理图看看。http://infocenter.arm.com/help/index.jsp?top
2015-12-23 09:36:48
33351
转载 电源抑制比DC-PSRR
在理想运放中,运放的特性不会随电源电压的变化而变化。当然,分析理想运放时,我们使用的电源,也会被假设成理想电源。但实际情况并非如此,实际的运放,电源电压发生变化时,总会引起运放参数的变化。这就引出运放的一个重要参数,运放的电源抑制比PSRR。维基百科中给出了PSRR的详细定义,就是当运放的电源电压发生变化时,会引起运放的输入失调电压的变化,(又是失调电压),这两个变化的比就是运放的PSRR。如下式
2015-12-20 08:56:11
5978
转载 开关电源与线性电源的区别
一、线性电源的原理线性电源主要包括工频变压器、输出整流滤波器、控制电路、保护电路等。如图1。图1线性电源是先将交流电经过变压器变压,再经过整流电路整流滤波得到未稳定的直流电压,要达到高精度的直流电压,必须经过电压反馈调整输出电压,这种电源技术很成熟,可以达到很高的稳定度,波纹也很小,而且没有开关电源具有的干扰与噪音。但是它的缺点是需要庞大而笨重的变压器,所需的滤波电
2015-12-18 17:50:49
7496
转载 NMOS和PMOS
在实际项目中,我们基本都用增强型mos管,分为N沟道和P沟道两种。NMOS和PMOS我们常用的是NMOS,因为其导通电阻小,且容易制造。在MOS管原理图上可以看到,漏极和源极之间有一个寄生二极管。这个叫体二极管,在驱动感性负载(如马达),这个二极管很重要。顺便说一句,体二极管只在单个的MOS管中存在,在集成电路芯片内部通常是没有的。NMOS和PMOS1.导通特性
2015-12-18 17:02:37
2200
原创 关于防反接保护电路设计的讨论
1、通常情况下直流电源输入防反接保护电路是利用二极管的单向导电性来实现防反接保护。如下图1示: 这种接法简单可靠,但当输入大电流的情况下功耗影响是非常大的。以输入电流额定值达到2A,如选用Onsemi的快速恢复二极管 MUR3020PT,额定管压降为0.7V,那么功耗至少也要达到:Pd=2A×0.7V=1.4W,这样效率低,发热量大,要加散热器。 2、另外还可以用二极管桥对输入
2015-12-18 16:38:40
1132
1
转载 关键的LDO指标和定义
备注:制造商数据手册首页一般是一些摘要信息,通常突出了一些吸引人的器件特性。关键参数经常强调典型的性能特征,但只有查阅了文档中的完整指标和其它数据后才能得到更完整的理解。另外,由于制造商提供指标的方式几乎没有标准可言,因此电源设计师需要理解用来获得电气指标表格中列出的关键参数的定义和方法。系统设计师应该密切关注关键参数,如环境和结点温度范围、图形信息中的X-Y刻度值 、负载、瞬态信号的上升和下
2015-12-18 11:04:29
5114
转载 气体放电管设计及使用
气体放电管设计及使用: 1)气体放电管的加入不能影响线路的正常工作,这就要保证气体放电管的直流击穿电压的下限值必须高于线路的最大正常工作电压。据此确定所需放电管的标称直流击穿电压值。 2)确定线路所能承受的最高瞬时电压值,要确保放电管的冲击击穿电压值必须低于此值。以确保当瞬间过压来临时,放电管的反映速度快于线路的反映速度,抢先一步将过电压限制在安全值。这是放电管的一个最重要的指标。
2015-12-18 10:06:43
3446
转载 气体放电管的应用
气体放电管的原理 气体放电管的工作原理可以简单地总结为气体放电。当两级间产生足够大的电量,则会造成极间间隙被放电击穿,这时其便由绝缘状态转变成为导电状态,这种现象与短路较为相似。当处于导电状态下时,两极间的电压会较低,一般是在20~50V之间,因此,其能够对后级电路起到很好的保护作用。 气体放电管采用陶瓷密闭封装,内部由两个或数个带间隙的金属电极,充以惰性气体(氩气或氖气)构成
2015-12-17 15:28:01
5264
转载 RJ45隔离变压器作用
在以太网设备中,通过PHY接RJ45时,中间都会加一个网络变压器。有的变压器中心抽头接电源,有的又接电容到地。而且接电源时,电源值又可以不一样,3.3V,2.5V,1.8V都有。这个变压器的作用到底是什么呢?下面是一个大概的解答:1、中间抽头为什么有些接电源?有些接地?这个主要是与使用的PHY芯片UTP口驱动类型决定的,这种驱动类型有两种,电压驱动和电流驱动。电压驱动的就要接电源;
2015-12-16 16:55:32
2588
转载 超强整理!PCB设计之电流与线宽的关系
关于pcb线宽和电流的经验公式,关系表和软件网上都很多,本文把网上的整理了一下,旨在给广大工程师在设计PCB板的时候提供方便。 以下总结了八种电流与线宽的关系公式,表和计算公式,虽然各不相同(大体相近),但大家可以在实际的PCB板设计中,综合考虑PCB板的大小,通过电流,选择一个合适的线宽。 一、PCB电流与线宽 PCB载流能力的计算一直缺乏权威的技术方法
2015-12-16 15:53:24
27649
8
转载 keil-mdk arm 中program size的解析
KEIL RVMDK编译后的信息 Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常量的大小,如const型,RW-data是(Read Write) 初始化了的可读写变量的大小,ZI-data是(Zero Init
2015-12-08 11:21:39
4746
2
转载 SWD与JTAG之间的区别
很多时候,我们做在线仿真的时候,有时候能用Jtag,有时候是Jlink,有时候又是ST-Link,哈哈,这么多接口,你分得清吗。。。对了,还有本文提到的SWD。SWD 仿真模式概念简述一、SWD 和传统的调试方式区别1. SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JT
2015-12-08 11:08:22
1299
转载 串联型或并联型电压基准的选择
本文介绍了不同类型电压基准芯片的选择,提供了选择串联型和并联型电压基准时需要考虑的几项指标。 串联型电压基准串联型电压基准具有三个端子:VIN、VOUT和GND,类似于线性稳压器,但其输出电流较低、具有非常高的精度。串联型电压基准从结构上看与负载串联(图1),可以当作一个位于VIN和VOUT端之间的压控电阻。通过调整其内部电阻,使VIN值与内部电阻的压降之差(等于VOUT端
2015-12-07 15:23:03
7079
转载 零欧姆电阻的十二种作用
我们经常在电路中见到0欧的电阻,对于新手来说,往往会很迷惑:既然是0欧的电阻,那就是导线,为何要装上它呢?还有这样的电阻市场上有卖吗?其实0欧的电阻还是蛮有用的。 零欧姆电阻又称为跨接电阻器,是一种特殊用途的电阻,0欧姆电阻的并非真正的阻值为零(那是超导体干的事情),正因为有阻值,也就和常规贴片电阻一样有误差精度这个指标。 以下总结了零欧姆电阻的一系列用法。 1.
2015-12-07 11:22:17
640
转载 电源芯片选择DC/DC还是LDO?
这个取决于你的应用场合。比如用在升压场合,当然只能用DC/DC,因为LDO是压降型,不能升压。另外看下各自的主要特点:DC/DC:效率高,噪声大;LDO:噪声低,静态电流小;所以如果是用在压降比较大的情况下,选择DC/DC,因为其效率高,而LDO会因为压降大而自身损耗很大部分效率;如果压降比较小,选择LDO,因为其噪声低,电源干净,而且外围电路简单,成本低。LDO是low dr
2015-12-07 11:05:37
24816
3
转载 晶振与负载电容总结
1.匹配电容-----负载电容是指晶振要正常震荡所需要的电容。一般外接电容,是为了使晶振两端的等效电容等于或接近负载电容。要求高的场合还要考虑ic输入端的对地电容。一般晶振两端所接电容是所要求的负载电容的两倍。这样并联起来就接近负载电容了。2.负载电容是指在电路中跨接晶体两端的总的外界有效电容。他是一个测试条件,也是一个使用条件。应用时一般在给出负载电容值附近调整可以得到精
2015-12-07 10:04:42
17309
转载 测温芯片DS18B20详细解读
第一部分:DS18B20的封装和管脚定义 首先,我们来认识一下DS18B20这款芯片的外观和针脚定义,DS18B20芯片的常见封装为TO-92,也就是普通直插三极管的样子,当然也可以找到以SO(DS18B20Z)和μSOP(DS18B20U)形式封装的产品,下面为DS18B20各种封装的图示及引脚图。 了解了这些该芯片的封装形式,下面就要说到各个管脚的定义了,如下
2015-12-06 11:15:26
17931
转载 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式
2015-12-06 11:04:23
312
转载 STM32学习:GPIO的模式
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多:(1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出
2015-12-04 16:03:25
865
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人