2 qingfeng_96

尚未进行身份认证

物有本末、事有终始,知所先后,则近道矣。

等级
TA的排名 1w+

嵌入式C语言编程小知识

1. 流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。2. 在LPC2200系列中:可以通过过下面的程序延迟10毫秒:for(i=0;i<200;i++){for(j=0;j&l...

2019-05-23 18:39:43

嵌入式实时系统中局部变量和全局变量

一、首先简要介绍局部变量和全局变量区别(1)作用域全局变量具有全局作用域,适用于所有源文件。但在不包含全局变量定义的文件中,需使用extern关键字声明这个全局变量后,方可正常使用。静态全局变量也具有全局作用域。它与全局变量的区别是,它仅仅作用于定义它的文件,程序中其他文件不可用。局部变量只有局部作用域。只在函数执行期间存在,当函数调用结束后,变量将被撤销,其所占用内存被收回。...

2019-05-23 18:34:20

#if、#else、#endif、#elif、#ifdef、#ifndef的区别和使用

常用的条件编译#if,#elif,#else,#endif,#ifdef、#ifndef看名字就知道,跟我们平时用的if、elseif、else是一样的,不同的是这里一定要记得#endif。#if 条件 1 代码 1#elif条件 2 代码 2#else 代码段n+1#endif意思跟我们平常写的代码一样,如果条件1成立,则编译代码1,如果条件二成立,则编...

2019-05-23 18:26:50

几种最常用的串行数据传输总线 - SPI

串行数据总线由于占用较少的管脚被广泛应用在MCU和外设的连接中,在过去的几十年里,有三种最常用的多线串行数据传输格式SPI、I2C和UART。这3种串行总线的主要区别: SPI-SerialPeripheralInterface(串行外设接口),突出了外设,也就有了主(Master-控制器)和从(Slave-外设)之分,在总线中也就只有一个“主人”,其它都是处于服从的位置,也...

2019-05-04 16:53:49

几种最常用的串行数据传输总线 - I2C

我第一次知道I2C总线是1995年,项目中用到电视机高频头(也叫调谐器、Tuner),能够方便买到的高频头要么是飞利浦(Philips)的,要么是日系厂商的,但日系厂商联系起来比较费劲。Tuner其实就是通过I2C总线送控制字来改变其本振频率(LO)选择你需要的频段,当时知道I2C的鼻祖就是飞利浦半导体(NXP-恩智浦半导体的前身),也是第一次使用MC34063这颗后来如同555一样扑街的开关稳压...

2019-05-04 16:51:52

使用示波器的正确姿势

我们都知道万用表(又称欧姆表)是工程师最常用的调试电路的工具,但万用表的功能非常有局限,如果你需要观察一些随时间变化的参量,比如频率、幅度、噪声等等,示波器就是最好的选择。那我们先看看示波器是什么?主要的用途是什么?示波器的主要用途就是将随时间变化的电信号以图形的方式画出来,多数的示波器是用时间为x轴,电压为y轴产生的二维图形。横轴为时间,纵轴为电压在示波器屏幕周边的控制按...

2019-05-04 16:48:55

usb转串口,232电平,TTL电平

TTL电平:一般用作数字芯片的电平(单片机大多是TTL电平,只是不同的电压标准)232电平:232电平特制电脑串口的电平USB:除去屏蔽层,有4根线,分别是VCC、GND和D+、D-两根信号线。5V是USB的电源电压,给USBdevice供电用的。信号线对于2.0,D+比D-大200mV时为1,D-比D+大200mV时为0,属差分信号,与TTL电平不兼容,信号传输时需要电...

2019-05-04 16:44:10

模电精髓“200问”

1、半导体材料制作电子器件与传统的真空电子器件相比有什么特点?答:频率特性好、体积小、功耗小,便于电路的集成化产品的袖珍化,此外在坚固抗震可靠等方面也特别突出;但是在失真度和稳定性等方面不及真空器件。2、什么是本征半导体和杂质半导体?答:纯净的半导体就是本征半导体,在元素周期表中它们一般都是中价元素。在本征半导体中按极小的比例掺入高一价或低一价的杂质元素之后便获得杂质半导体。3、空穴是一...

2019-05-04 16:33:35

STM32库的理解

最后在用keil 建立自己工程把上图中的文件(.c文件)加入到你的项目中去。keil指定好.h文件路径。以上截取上课的PPT,方便自己随时查看。不过操作起来还是有难度的,对小白不友好。在建立的STM32库时,有错误随时百度,建议用(www .bing.com 你懂的)注意: 在向keil u5 中添加文件是不要漏加启动文件(startu...

2019-03-29 14:54:59

「详细」搭建Linux下STM32开发环境

转载微信公众号 点击链接MDK+Jlink的开发环境集编译、下载、调试为一体,配合上友好的操作界面,给用户者提供了很Happy的开发工具。但是,曾经玩过Linux系统的人总想尝试对开发环境的一次搬移,转战到Linux下看有什么事情发生。  在Linux下,搭建STM32的开发环境是一种具有挑战性的任务,从中我们能学到如何创造一个集成开发环境,或者说我们知道集成开发环境的构成元素。不得不提出...

2019-03-29 14:15:42

什么是框架

框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。目前还没看到什么有趣的个人化解释,可能是因为要解决都复杂到设计出框架来解决的问题的人比大多数有情趣的人来说都更感觉boring吧,所以……嘿嘿!...

2019-02-28 11:11:50

ROM, FLASH和RAM的区别

初学MCU的人,经常会看到ROM,RAM,FLASH,而且会被这些词汇搞得晕头转向。本文对这些概念进行了厘清,并介绍了这些Memory的区别,以及它们在MCU中的作用。ROM(ReadOnlyMemory)程序存储器ROM全称ReadOnlyMemory,顾名思义,它是一种只能读出事先所存的数据的固态半导体存储器。ROM中所存数据稳定,一旦存储数据就再也无法将之改变或者...

2019-02-28 10:39:52

Linux 或 Unix 操作系统目录表示

在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个...

2019-02-21 17:57:37

ARM CORTEX-M3 内核架构理解归纳

ARMCORTEX-M3内核架构理解归纳来源:网络 个人觉得对CM3架构归纳的非常不错,因此转载基于《ARM-CORTEXM3 权威指南》做学习总结;在我看来,Cotex-M3内核的主要包括:嵌套向量中断控制器(NVIC),取值单元,指令译码器,算数逻辑单元(ALU),寄存器组,存储器映射(4GB统一编址各区域功能的划分与界定),对于开发者而言,其实主要关注的主要分为三大块:...

2019-02-09 20:00:05

以通俗易懂的话解释CM3内核时钟源

 最近一直在做单片机通信方面的程序测试,成果之一就是以战舰板串口2向野火开发板串口1发送字符或字符串,战舰板作为主机设计了触摸屏界面,可以根据界面随心所欲地向从机发送字符或字符串还包括汉字。基于此,正在设计一个通过战舰板RS485控制西门子S7-200PLC的程序;这也是现在工业自动化最常见的一种控制模式。言归正传:     CM3内核的时钟树很复杂,什么系统时钟,总线时钟,外部时钟,内部时钟的...

2019-02-09 19:53:17

奇偶函数运算

两个奇函数的和或差还是奇函数,两个奇函数的积或商为偶函数;两个偶函数的和,差,积,商还是偶函数;一个偶函数一个奇函数的积,商为奇函数。...

2019-01-18 13:59:14

什么是泄漏?

在做信号处理时,经常涉及到“泄漏”。那泄漏是什么,是什么原因造成了泄漏呢?在这将告诉您答案。 1.信号截断一次FFT分析截取1帧长度的时域信号,这1帧的长度总是有限的,因为FFT分析一次只能分析有限长度的时域信号。而实际采集的时域信号总时间很长,因此,需要将采样时间很长的时域信号截断成一帧一帧长度的数据块。这个截取过程叫做信号截断。 假设有一段10s的时域信号,取1帧的长度T=...

2019-01-04 18:11:27

int a=301;char *p=(char *)&a; printf("%d,%d",*p,*++p);

  题目:#include<stdio.h>int main(){int a=301; // 1_0010_1101Bint x=1; x>>8?printf("big\n"):printf("small\n");  //检测大小端char *p=(char *)&a;printf("%d,%d",*p,*++p);   retur...

2018-12-30 20:51:17

频谱泄露和吉布斯现象

吉布斯现象(英语:Gibbsphenomenon),由HenryWilbraham于1848年最先提出[1],并由约西亚·吉布斯于1899年证明[2]。在工程应用时常用有限正弦项正弦波叠加逼近原周期信号。所用的谐波次数N的大小决定逼近原波形的程度,N增加,逼近的精度不断改善。但是由于对于具有不连续点的周期信号会发生一种现象:当选取的傅里叶级数的项数N增加时,合成的波形虽然更逼近原函数,但在不连...

2018-12-27 09:10:07

gcc和交叉编译

GNU编译器套件(GNUCompilerCollection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。GCC(GNUCompilerCollection,...

2018-12-19 21:36:21

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!