搜档网
当前位置:搜档网 › Keil字体颜色设置说明

Keil字体颜色设置说明

Keil字体颜色设置说明

示波器原理及其应用分析解析

示波器原理及其应用 示波器介绍 示波器的作用 示波器属于通用的仪器,任一个硬件工程师都应该了解示波器的工作原理并能够熟练使用示波器,掌握示波器是对每个硬件工程师的基本要求。 示波器是用来显示波形的仪器,显示的是信号电压随时间的变化。因此,示波器可以用来测量信号的频率,周期,信号的上升沿/下降沿,信号的过冲,信号的噪声,信号间的时序关系等等。 在示波器显示屏上,横坐标(X)代表时间,纵坐标(Y)代表电压,(注,如果示波器有测量电流的功能,纵坐标还代表电流。)还有就是比较少被关注的-亮度(Z),在TEK的DPO示波器中,亮度还表示了出现概率(它用16阶灰度来表示出现概率)。 1.1.示波器的分类 示波器一般分为模拟示波器和数字示波器;在很多情况下,模拟示波器和数字示波器都可以用来测试,不过我们一般使用模拟示波器测试那些要求实时显示并且变化很快的信号,或者很复杂的信号。而使用数字示波器来显示周期性相对来说比较强的信号,另外由于是数字信号,数字示波器内置的CPU或者专门的数字信号处理器可以处理分析信号,并可以保存波形等,对分析处理有很大的方便。

1.2.1 模拟示波器 模拟示波器使用电子枪扫描示波器的屏幕,偏转电压使电子束从上到下均匀扫描,将波形显示到屏幕上,它的优点在于实时显示图像。 模拟示波器的原理框图如下: 见上图所示,被测试信号经过垂直系统处理(比如衰减或放大,即我们拧垂直按钮-volts/div),然后送到垂直偏转控制中去。而触发系统会根据触发设置情况,控制产生水平扫描电压(锯齿波),送到水平偏转控制中。 信号到达触发系统,开始或者触发“水平扫描”,水平扫描是一个是锯齿波,使亮点在水平方向扫描。触发水平系统产生一个水平时基,使亮点在一个精确的时间内从屏幕的左边扫描到右边。在快速扫描过程中,将会使亮点的运动看起来

KEIL51调试时一些的错误总结

KEIL51调试时一些的错误总结 (1)提示无M51文件 编译时候提示: F:\...\XX.M51 File has been changed outside the editor, reload ? ------ 解决方法: 重新生成项目,产生STARTUP.A51即可。 (2)L15重复调用 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,或者同时被多个中断服务程序调用。 出现这种问题的原因之一是这个函数是不可重入性函数,当该函数运行时它可能会被一个中断打断,从而使得结果发生变化并可能会引起一些变量形式的冲突(即引起函数内一些数据的丢失,可重入性函数在任何时候都可以被ISR 打断,一段时间后又可以 运行,但是相应数据不会丢失)。 原因之二是用于局部变量和变量(暂且这样翻译,arguments,[自变量,变元一数值,用于确定程序或子程序的值])的内存区被其他函数的内存区所覆盖,如果该函数被中断,则它的内存区就会被使用,这将导致其他函数的内存冲突。 例如,第一个警告中函数WRITE_GMVLX1_REG 在D_GMVLX1.C 或者 D_GMVLX1.A51被定义,它被一个中断服务程序或者一个调用了中断服务程序的 函数调用了,调用它的函数是VSYNC_INTERRUPT,在MAIN.C中。 解决方法: 如果你确定两个函数决不会在同一时间执行(该函数被主程序调用并且中断被禁止),并且该函数不占用内存(假设只使用寄存器),则你可以完全忽略这种警告。 如果该函数占用了内存,则应该使用连接器(linker)OVERLAY指令将函数从覆盖分析(overlay analysis)中除去,例如: OVERLAY (?PR?_WRITE_GMVLX1_REG?D_GMVLX1 ! *) 上面的指令防止了该函数使用的内存区被其他函数覆盖。如果该函数中调用了其他函数,而这些被调用在程序中其他地方也被调用,你可能会需要也将这些函数排除在覆盖分析(overlay analysis)之外。这种OVERLAY指令能使编译器除去上述警告信息。 如果函数可以在其执行时被调用,则情况会变得更复杂一些。这时可以采用以下几种方法:

STMv3.5固件库在keil4中建立工程的具体过程

首先建立一个文件夹用来装工程(文件夹名自定,笔者建立的文件名为“ggyy_Proj”文件夹)。 在“ggyy_Proj”文件夹下,建立两个文件夹“User”和“Project”。 将库文件STM32F10x_StdPeriph_Lib_V3.5.0下的“Libraries”文件夹全部拷入“ggyy_Proj”文件夹下。 将“ggyy_Proj”文件夹下的“Project”文件夹下建立三个文件夹“List”、“Obj”和“Pro”。其中Pro用来存放工程。 将“ggyy_Proj”文件夹下的“User”文件夹下建立两个文件夹“inc”和“src”。

然后将需要用到的文件拷贝到相应的文件夹中: 将以下5个.h文件考进ggyy_Proj下User下的inc文件夹中: ···ggyy_Proj\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h ···ggyy_Proj\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h \stm32f10x.h 固件库中: ·STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h \stm32f10x_it.h 将以下2个.c文件考进ggyy_Proj下User下的src文件夹中: 固件库中: ···STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c \main.c 现在打开keil,并点击在Project菜单栏下的New uVision Project…来新建工程。

数字示波器及其简单原理图

数字示波器及其简单原理图 数字示波器可以分为数字存储示波器(DSOs)、数字荧光示波器(DPOs)、混合信号示波器(MSOs)和采样示波器。 数字式存储示波器与传统的模拟示波器相比,其利用数字电路和微处理器来增强对信号的处理能力、显示能力以及模拟示波器没有的存储能力。数字示波器的基本工作原理如上图所示当信号通过垂直输入衰减和放大器后,到达模-数转换器(ADC)。ADC 将模拟输入信号的电平转换成数字量,并将其放到存贮器中。存储该值得速度由触发电路和石英晶振时基信号来决定。数字处理器可以在固定的时间间隔内进行离散信号的幅值采样。接下来,数字示波器的微处理器将存储的信号读出并同时对其进行数字信号处理,并将处理过的信号送到数-模转换器(DAC),然后DAC的输出信号去驱动垂直偏转放大器。DAC也需要一个数字信号存储的时钟,并用此驱动水平偏转放大器。与模拟示波器类似的,在垂直放大器和水平放大器两个信号的共同驱动下,完成待测波形的测量结果显示。数字存储示波器显示的是上一次触发后采集的存储在示波器内存中的波形,这种示波器不能实时显示波形信息。其他几种数字示波器的特点,请参考相关书籍。

Agilent DSO-X 2002A 型数字示波器面板介绍

该示波器有两个输入通道CH1和CH2,可同时观测两路输入波形。选择通道1时,示波器仅显示通道1的信号。选择通道2时,示波器仅显示通道2的信号。选择双通道时,示波器同时显示通道1信号和通道2信号。 荧光屏(液晶屏幕)是显示部分。屏上水平方向和垂直方向各有多条刻度线,指示出信号波形的电压和时间之间的关系。 操作面板上的各个按钮按下后,相应参数设置会显示在荧光屏上。 开机后,荧光屏显示如下: 测试信号时,首先要将示波器的地(示波器探笔的黑夹子)与被测电路的地连接在一起。根据输入通道的选择,将示波器探头接触被测点(信号端)。按下Auto Scale,示波器会自动将扫描到的信号显示在荧光屏上。 输入耦合方式:模拟示波器输入耦合方式有三种选择:交流(AC)、地(GND)、直流(DC);部分数字示波器则没有GND耦合这种方式,其通过在屏幕上直接标注零电平线的位置的方法来实现GND耦合(用来确定零电平线)的功能。当选择“地”时,扫描线显示出“示波器地”在荧光屏上的位置。直流耦合用于测定信号直流绝对值和观

Keil C 编译器常见警告与错误信息

http://www.keil.com/support/man/docs/c51/c51_c277.htm错误信息查询 Keil C 编译器常见警告与错误信息 error C132 :“****”not in formal parameter list 花了偶将近半个小时来查找错误,最终发现原来是在头文件里的一个函数声明时露了一个分号造成紧挨着在它下面声明的参数not in formal parameter list。 记在在这里,免得以后忘记了,同时也供大家分享。 下面是另外一些常见的错误提示: 1.第一种错误信息 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_WRITE_GMVLX1_REG?D_GMVLX1 CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_SPI_SEND_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP - 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,

GD32 Keil5工程创建步骤

第一步:安装DFP软件包 (1)按照Keil uVision5, 步骤略。我的keil版本如下: (2)下载GD3210X的DFP软件包。 下载地址: 插件包下载完成后,有3个文件。 (3)安装DFP软件包。双击.pack文件进行安装,如下图所示:

点击next,将包文件复制到上面的路径位置。如下图: GigaDevice文件夹就是安装好的软件包。 第二步:创建Keil工程 (1)通常要新建3个文件夹。如下图所示: (2)打开keil5,新建project.将工程文件放到Mdk-Arm目录下面。弹出器件选择界面:在Device下拉框,选择Software Packs,选择GD32F103RB,点击OK

接着弹出Mannage RTM界面,选中CMSIS的CORE和设备外围库文件,如下所示: 点击OK,CMSIS工具自动添加库文件到./Mdk-Arm/RTE目录中,工程目录如下所示:

(3)在Keil5中,打开文件管理界面: 依次创建文件组:Application/Utilites/Documents (4)将main.c gd32f10x_it.c sysstick.c相关文件拷贝到userr文件夹,并添加到Application 文件组中。 (5)设置编译的头文件目录:将DFP包的CMSIS相关头文件路径都加进去,将 RTE_Components.h配置头文件路径加进去。如下图所示:

Main文件内容如下: 注意: (1)此项目是用MDK CMSIS配置工具建立的,CMSIS配置工具会自动将选用的标准库源码的C文件从Kiel5的DFP包标准库目录下拷贝到当前的项目中:./Mdk-Arm/RTE路径下,但是没有将头文件拷贝过来。所以此项目的编译依赖实际的Keil5安装环境:没有安装DFP包或头文件目录跟工程设置的包含路径不对应的话,就会出现编译失败。也就是说,将一个项目拷贝到另一台电脑时,编译可能失败。 (2)main.c/systick.c和gd32f10x_it.c是从例程中拷贝过来的. (3)头文件的前面出现感叹号,表示没有正确的引用。 (4)也可以不用MDK CMSIS配置工具,手动拷贝相应的CMSIS库文件,进入DFP软件包目录下,将GD32F10x_DFP文件夹整体拷贝到过来。再将 C:\Keil_v5\ARM\PACK\ARM\CMSIS\4.5.0\CMSIS目录下的Include目录拷贝过来。再将启动文件也拷贝过来,(注:位置应该是GD32F10x_DFP\2.0.0\Device\Source\ARM, 此处我选的MCU 是GD32F103RB,所以用md.s),将其拷贝到过来。手动拷贝库文件建立工程的方法跟用CMSIS 配置工具建立工程的方法大同小异,只是工程里面添加了标准库文件之后,记得要手动配置对应的头文件。而借助CMSIS工具,则会自动通过更改RTE_Components.h文件实现。

示波器的基础学习知识原理和使用

示波器的原理和使用 示波器是一种用途广泛的基本电子测量仪器,用它能观察电信号的波形、幅度和频率等电参数。用双踪示波器还可以测量两个信号之间的时间差,一些性能较好的示波器甚至可以将输入的电信号存储起来以备分析和比较。在实际应用中凡是能转化为电压信号的电学量和非电学量都可以用示波器来观测。 【实验目的】 1.了解示波器的基本结构和工作原理,掌握使用示波器和信号发生器的基本方法。2.学会使用示波器观测电信号波形和电压幅值以及频率。 3.学会使用示波器观察李萨如图并测频率。 图1-1 示波器结构图 【实验原理】 不论何种型号和规格的示波器都包括了如图1-1所示的几个基本组成部分:示波管(又称阴极射线管,cathode ray tube,简称CRT)、垂直放大电路(Y放大)、水平放大电路(X放大)、扫描信号发生电路(锯齿波发生器)、自检标准信号发生电路(自检信号)、触发同步电路、电源等。 1.示波管的基本结构

示波管的基本结构如图1-2所示。主要由电子枪、偏转系统和荧光屏三部分组成,全都密封在玻璃壳体内,里面抽成高真空。 (1)电子枪:由灯丝、阴极、控制栅极、第一阳极和第二阳极五部分组成。灯丝通电后加热阴极。阴极是一个表面涂有氧化物的金属圆筒,被加热后发射电子。控制栅极是一个顶端有小孔的圆筒,套在阴极外面。它的电位比阴极低,对阴极发射出来的电子起控制作用,只有初速度较大的电子才能穿过栅极顶端的小孔然后在阳极加速下奔向荧光屏。示波器面板上的“辉度”调整就是通过调节电位以控制射向荧光屏的电子流密度,从而改变了屏上的光斑亮度。阳极电位比阴极电位高很多,电子被它们之间的电场加速形成射线。当控制栅极、第一阳极与第二阳极电位之间电位调节合适时,电子枪内的电场对电子射线有聚集作用,所以, H-灯丝;K-阴极;G1,G2- 控制栅极;A1-第一阳极;A2-第二阳极;Y-竖直偏转板;X-水平偏转板 图1-2 示波管结构图 第一阳极也称聚集阳极。第二阳极电位更高,又称加速阳极。面板上的“聚集”调节,就是调第一阳极电位,使荧光屏上的光斑成为明亮、清晰的小圆点。有的示波器还有“辅助聚集”,实际是调节第二阳极电位。 (2)偏转系统:它由两对互相垂直的偏转板组成,一对竖直偏转板,一对水平偏转板。在偏转板上加以适当电压,电子束通过时,其运动方向发生偏转,从而使电子束在荧光屏上产生的光斑位置也发生改变。 (3)荧光屏:屏上涂有荧光粉,电子打上去它就发光,形成光斑。不同材料的荧光粉发光的颜色不同,发光过程的延续时间(一般称为余辉时间)也不同。荧光屏前有一块透明的、带刻度的坐标板,供测定光点的位置用。在性能较好的示波管中,将刻度线直接刻在荧光屏玻璃内表面上,使之与荧光粉紧贴在一起以消除视差,光点位置可测得更准。2.波形显示原理

KEIL常见编译错误大全

KEIL常见编译错误大全 【致命错误】 立即终止编译这些错误通常是命令行指定的无效选项的结果当编译器不 能访问一个特定的源包含文件时也产生致命错误 致命错误信息采用下面的格式 C51FATAL-ERROR– ACTION: LINE: ERROR: C51TERMIANTED. C51FATAL-ERROR– ACTION: FILE: ERROR: C51TERMIANTED. 下面说明Action和Error中可能的内容 Actions ALLOCATING MEMORY 编译器不能分配足够的存储区来编译指定的源文件. CREATING LIST-FILE/OBJECT-FILE/WORKFILE 编译器不能建立列表文件,OBJ文件,或工作文件这个错误的出现可能是磁盘满或写保护,或文件已存在和只读. GENERATING INTERMEDIATE CODE 源文件包含的一个函数太大,不能被编译器编译成虚拟代码.尝试把函数分小或重新编译. OPENING INPUT-FILE 编译器不能发现或打开所选的源或包含文件. PARSING INVOKE-/#PRAGMA-LINE 当在命令行检测到参数计算,或在一个#pragma中检测到参数计算,就产生这样的错误. PARSING SOURCE-FILE/ANALYZING DECLARATIONS 源文件包含太多的外部参考.减少源文件访问的外部变量和函数的数目. WRITING TO FILE

Keil编译常见问题

Error: L6200E Error: L6200E: Symbol temp multiply defined (by and .在编译的时候出现了这个问题,但是检查不出来,希望各位大侠帮帮忙 什么变量你给付了两次值 你看看是不是那个外部变量你又给赋值了 申明,其他.c文件对应的.h文件中用extern引用 error: #20 error: #20: identifier "TIM2_IRQChannel" is undefined 谁能说说,哪里错了 你的固件库里的库文件没有添加进工程里面,所以出现未定义的情况。 TIM2_IRQChannel指定时器2的中断通道没有定义,其实在固件库对这些参数都有定义,宏定义代替了一串寄存器地址数据。需要将.C文件添加到工程文件中 warning: #1-D (7): warning: #1-D: last line of file ends without a newline 当使用keil编译时,弹出这样的警告信息:(7): warning: #1-D: last line of file ends without a newline 这个是由于在main函数的“}”后,没有加回车。 只要在main函数的“}”后加回车键,此警告信息即可消除。 error:#65 ...(27):error:#65:expected a ";"

分数送你了,问题在你回答之前已经解决了,头文件里的结构体定义里的最后一行没有加";" 如NB menu{..}; error:#1113: 折腾了大半天,才搞明白一个空操作的指令 先在网上查有的说是__asm{NOP;},从里调用,可犄角旮旯全找了,也没看到什么的文件。如果直接用,就出现error:#1113:InlineassemblernotpermittedwhengeneratingThumbcode 最后搜索这条错误,知道是因为__asm("指令");这种语法是内联汇编(inlineassembly)的语法。而RMDK下,内联汇编仅支持ARM汇编语言,不支持Thumb或者Thumb-2汇编语言;但内嵌汇编器支持Thumb和Thumb-2。 __asm放到一个单独的子函数再被调用就没问题了 如下: __asmvoidnop(void) { NOP } 然后在之后的C代码中调用该函数: voidmain() { ... nop(); ...? }

Keil编程常见错误

uint i, j; uchar a = 0xfe; EA = 1; EX0 = 1;不能这样 EA = 1; EX0 = 1; uint i, j; uchar a = 0xfe; 否则出现外部中断.C(18): error C141: syntax error near 'unsigned' 外部中断.C(18): error C202: 'i': undefined identifier 外部中断.C(19): error C141: syntax error near 'unsigned' 外部中断.C(19): error C202: 'a': undefined identifier 外部中断.C(23): error C202: 'i': undefined identifier 外部中断.C(27): error C202: 'a': undefined identifier 外部中断.C(29): error C202: 'a': undefined identifier 外部中断.C(31): error C202: 'i': undefined identifier 外部中断.c - 8 Error(s), 0 Warning(s). 原因:顺序问题,keil中的顺序 外部中断和内部中断的区别是什么; 外部中断是在单片机的外面给单片机一个信号单片机收到这个信号开始中断这是外部中断 内部中断是通过软件把中断打开执行中断

error c236:‘——display’:different length of parameter lists参数列表的长度不同。 检查开始的函数声明和这定义的参数是否一致。 还有参数没说明类型 有很大的区别, 错误3 unreferenced local variable 是未使用定义的变量,就是你定义了但是没有使用。 错误4 syntax error语法错误。 电平触发方式是按照电平的高或者低来触发,所以用的时候,必须在发生触发事件后立即将电平拉到非触发电平上,如果不这样做的话,会导致程序一直在触发事件程序入口处,而不会执行其他地方的程序。所以一般比较少用。 边沿触发方式是按照(上或下)边沿触发事件,由于触发的条件是边沿(上或下),所以即使在触发事件后,保存原来的电平都没有关系,不会一直在触发的,一般都用这种方式。 错误5 #define uchar unsigned char 不能写成 #define unsigned char uchar 否则出现会出现很多错误 错误6 不能这样定义字符数组 int a = “wwwsad”只能用char 错误7 error C244: 'table':can't initialize, bad type or class 。意思是错误的或者坏的类

keil编程步骤

-、双击打开keil编程软件,图标如下图所示 二、新建工程:在“菜单栏”-“Project”-“New”-“μvision Project”-输入要保存的工程名。

根据单片机的型号选择CPU,然后点击“确定”。 选择“否”。 三、新建文件 点击新建文件。 四、保存文件 注意:文件名要带扩展名。用C语言编写的程序,扩展名为“.c”;用汇编语言编写的程序,扩展名为“.asm”。点击“保存”。

五、添加文件到工程 在工程管理器中,用鼠标右键点击“Source Group 1”,选择“Add File to Group ‘Source Groutp 1’”,如果要添加的文件是汇编文件,文件类型选择如下图所示的类型;如果是C语言文件,文件类型选择“*.c”。双击要添加文件,然后点击”close”。

在工程管理器中,可以看到刚刚添加的文件 六、编写程序 七、编译当前文件 点击按钮 八、修改错误 根据输出框里的提示信息修改程序中的错误 九、生成烧录文件 在工程管理器中,鼠标右键单击,按下图操作。

将“create HEX file”前复选框前选上。“02”是文件名,可以改成其他的名,文件名前“select folder for objects”是此文件要保存的位置,默认情况下和当前工程保存在同一目录下,如果要保存在其他位置,可以点击此外进行修改。 点击编译工程图标,在输出框里会有提示信息 ,说明生成了hex文件。注意:必须在编译当前 文件没有错误的情况下才能生成hex文件。 十、将程序下载到单片机

双击烧录软件图标,打开软件。按下图所示设置“编程器及接口”、“编程”。“选择芯片”:根据你当前的单片机选择型号。 点击图标, 找到生成的HEX文件打开。点击图标,将程序烧录到单片机。

keil c语言编程常见错误分析要点

1. Warning 280:’i’:unreferenced local variable 说明局部变量i 在函数中未作任何的存取操作解决方法消除函数中i 变量的宣告及即定义的参数在程序中并未调用 2 Warning 206:’Music3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告 3Error:318:can’t open file ‘beep.h’ 说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#i nclude “beep.h”,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中 4 Error 237:’LedOn’:function already has a body 说明LedOn( )函数名称重复定义即有两个以上一样的函数名称 解决方法修正其中的一个函数名称使得函数名称都是独立的 5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAYX1MS?DELAY 说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间

解决方法去掉DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译 6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H 说明外部资料ROM 的0025H 重复定义地址 解决方法外部资料ROM 的定义如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在0x25 处并修正它 7 WARNING 206:’DelayX1ms’: missing function-prototype C:\8051\INPUT.C Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C 说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作宣告 解决方法编写DelayX1ms 的内容编写完后也要作宣告或作外部宣告可在delay.h 的包含档宣告成外部以便其它函数调用 8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3

ARM的KEIL工程建立及编译过程

ARM 的KEIL 工程建立及编译过程 精简: 1)添加:Ext_RAM.ini 和RuninRAM.sct; 2)选中 ,去掉 3)注意LOAD 1.axf INCREMENTAL // Download program 这个名要与工程名保持一致。 第一步:新建工程 点击Project-new uvision Project 新建工程,注意工程名没有后缀。 点是,自动生成启动代码,否,要自己写启动代码。 第二步:自己写c 程序(用户程序): 点击File-New 新建文件:注意文件名尾缀为.c。 U n R e g i s t e r e d

第三步:添加C 文件 选中Source Group1点击右键,进行文件添加。 第四步:COPY 三个文件:(第一个是用户程序,自己写就不需要添加,最后一个如果自动生成启动代码也不需要添加)Ext_RAM.ini 和RuninRAM.sct 必须添加。 Ext_RAM.ini :J-LINK 初始化脚本,必须添加。 代码执行前必须要初始化CPU 内部的一些寄存器。该文件就是做初始化工作,给J-LINK 用。J-LINK 通过读取该配置文件,初始化目标板主CPU 相关的寄存器。 RuninRAM.sct:代码编译时需要的链接文件,其主要作用就是组织代码的到该脚本指定的地址。 S3C2440A.s:初始化代码(启动代码) 小知识点:RuninRAM.sct:代码分析 U n R e g i s t e r e d

; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAM LR_ROM1 0x30000000 { ; load region 程序运行起始地址。内存起始地址固定0x30000000 ER_ROM1 0x30000000 0x0040000 { // 0100 ; load address = execution address 程序的下载地址,及程序容量 *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_RAM1 0x30040000 0x0040000 { ; RW data RW 段起始地址 .ANY (+RW +ZI) } RW_IRAM1 0x40000000 0x00001000 { //芯片内部4k sram 空间,固定式0x40000000开始。 .ANY (+RW +ZI) } } 第五步:配置 U n R e g i s t e r e d

第2课 keil软件及工程文件的建立

第2 课keil 软件及工程文件的建立 单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。这次教程开发程序所用到的软件为keil uVision2,该软件大家可以到实验室的下载中心进行下载;硬件实验平台主要采用我们实验室自行设计的实验板,有需要的请直接与我们联系。下面分别介绍这keil uVision2 和实验板的使用方法,在程序编写完成后需把程序烧写到单片机中,我们是用ISP 在线下载工具,这里一并进行介绍。为了便于大家学习,这里我们写一个以1602 液晶为显示器件的可显示时、分、秒的电子时钟 程序为例介绍整体程序从编辑、编译到下载的全过程。(具休程序已事先写好 并经正常调试无误,后面课程会具体介绍,这里暂不作讲解)在正式的写程序之前,需进行keil uVision2 软件的安装和实验板驱动程序的安装,相关的软件及驱动程序请大家直接在实验室网站下载中心进行下载,这里给出下载地址。keil uVision2 软件件及安装方法、实验板驱动程序及安装方法。安装安成后,即可按下面的步骤进行。1、KEIL 软件的使用及工程文件的建立51 单片机程 序设计所用到的开发软件主要是keil uVision,它是由德国Keil Software 公司开发的,2005 年Keil 公司被ARM 公司收购,并于2009 年发布了keil uVision4,这个版本的软件支持ARM 系列的芯片,如现目前流行的STM32 等芯片,我们这里使用的是uVision2 版本。(1)、打开KEIL 软件双击keil 快捷方式图标(软件安装好后,一般在桌面上会有快捷方式,双击即可),出现启动界面如 图1,紧接着出现编辑界面如图2。图1启动keil 软件时的界面图2进入

keil常见错误及解决办法

查看文章 【转】 KEIL C编译器常见警告与错误信息的解决办法 2010-09-03 16:21 转载自朝阳暮鼓 最终编辑朝阳暮鼓 KEIL C编译器常见警告与错误信息的解决办法 1. Warning 280:’i’:unreferenced local variab le 说明局部变量i 在函数中未作任何的存取操作 解决方法消除函数中i 变量的宣告 2 Warning 206:’Music3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数 则要写成extern void Music3(void),即作外部宣告 3 Compling :C:\8051\MANN.C Error:318:can’t open file ‘beep.h’ 说明在编译 C:\8051\MANN.C 程序过程中由于main.c 用了指令#include “beep.h”,但却找不到所致 解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中 4 Compling:C:\8051\LED.C Error 237:’LedOn’:function already has a body 说明LedOn( )函数名称重复定义即有两个以上一样的函数名称 解决方法修正其中的一个函数名称使得函数名称都是独立的 5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAYX1MS?DELAY 说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间 解决方法去掉 DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译 6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H 说明外部资料ROM 的0025H 重复定义地址 解决方法外部资料ROM 的定义如下 Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是 否有其它的变量名称也是定义在0x25 处并修正它

示波器 波形显示原理 示波器使用

3.1 波形显示原理 示波器是电子示波器的简称,是一种用途极为广泛的电子测量仪器。它的基本原理是利用电子束轰击阴极射线管(CRT),并使它发光来产生肉眼可见的光点。我们知道,电子学中的信号大都是时间的变量,信号随时间的变化可用函数f(t)来描述。在示波器上,如果用X轴代表时间,用Y轴代表f(t),来描绘出被测信号随时间的变化规律,就把我们肉眼看不见的,非常抽象的电信号变化过程,转换为肉眼可以直接观看的波形,在荧光屏上显示出来,从而可以对电信号进行分析并测量其参数。示波器可以测量很多电参数,如电压、电流、功率、频率、周期、相位、脉冲宽度、脉冲上升及下降时间等。如果配上相应的传感器,还可以用来测量温度、压力、振动、密度、声、光、热、磁效应等非电量。因而示波器在各个领域中得到了越来越多的应用。 示波器对电信号的分析是按时域法进行的,研究信号的瞬间幅度与时间的函数关系,因此有捕获、显示及分析时域波形的功能。作为实验室常用的电子测量仪器,它具有下述特点: ①具有良好的直观性,能显示波形,能测信号瞬时值。 ②灵敏度高,显示速度快,工作频带宽,可方便观察瞬变信号细节。 ③输入阻抗高(MΩ级),对被测电路影响小,这对测量精度是很重要的。 ④是一种信号比较器,可显示、分析任意两个量之间的函数关系。 无论现在和将来,电子示波器都是一种不可缺少的电子测量仪器,它正向自动化、智能化方向发展。 3.1.1 波形显示原理 1.示波管工作原理: 电子示波器的心脏是示波管,又称阴极射线管(CRT),它是一种特殊的电子管,是能够把电信号转换为光信号的显示器件,因此是示波器能观测电信号波形的关键器件。示波管主要由电子枪、偏转系统和荧光屏三部分组成,它的基本结构如图2-1所示。 图3-1:示波管的基本原理图 电子枪的作用是产生极细的高速电子束,轰击荧光屏产生光点。目前绝大多数示波管采用无阳极电流型电子枪,它由灯丝(F)、阴极(K)、控制栅极(G)、第一阳极(A1)和第二阳极(A2)组成。除灯丝电极外,其余电极的结构均为金属圆筒形,且所有电极的轴心都保持在同一条轴线上。从电子枪射出的电子束,若不受电场的作用,则将沿直线前进在荧光屏上显示出静止光点;如果电子束受到垂直方向的电场作用,则其运动方向就会在垂直方向偏离中心轴线,即光屏上的光点位置就会在垂直方向产生位移。如电子束受到水平方向的电场作用,则其运动方向就会在水平方向偏离中心轴线,即荧光屏上的光点位置就会在水平方向产生位移。示波管第二阳极和荧光屏之间由两对互相垂直的偏转板X和Y组成静电偏转系统,分别称为水平偏转板和垂直偏转板;在每对偏转板上加上适当电压,分别控制电子束在水平方向和垂直方向的位移,根据运动的合成法则,两对偏转板共同配合,就决定了任一

keil5如何建工程

北京科技大学 Keil5工程创建及程序 下载 创建工程;下载程序 北京科技大学MEI团队 作者:解乃颖联系方式:ny_xie@163.com日期:2014-08-20

目录内容 创建工程: __________________________________________________________________ 步骤一:创建文件夹和相应的库文件________________________________________ 1步骤二:创建工程文件__________________________________________________ 1步骤三:添加库函数____________________________________________________ 3步骤四:选择输出路径__________________________________________________ 7步骤五:添加路径和定义_________________________________________________ 9 程序下载: ________________________________________________________________ 联系信息 __________________________________________________________________ 12

创建工程: 步骤一:创建文件夹和相应的库文件 新建工程文件夹目录如下 其中,文件夹Prj 包含以下文件夹: 之后添加常用文件,如main.c bsp.c function.c Global.h Config.h 等 步骤二:创建工程文件 打开keil5,创建新工程。 “需要向您的读者 指出某些极其重要的内容吗?请使用边栏突出该内容。”

Keil+C编译器常见警告与错误信息的解决方法

??????? 本章列出了编程中可能遇到的致命错误语法错误和警告信息每节包括一个信息 的主要说明和消除错误或警告条件可采取的措施 致命错误 致命错误立即终止编译这些错误通常是命令行指定的无效选项的结果当编译器不能访问一个特定的源包含文件时也产生致命错误 致命错误信息采用下面的格式 C51 FATAL-ERROR – ACTION LINE: ERROR: C51 TERMIANTED. C51 FATAL-ERROR – ACTION FILE: ERROR: C51 TERMIANTED. 下面说明Action和Error中可能的内容

Actions ALLOCATING MEMORY 编译器不能分配足够的存储区来编译指定的源文件 CREATING LIST-FILE / OBJECT-FILE / WORKFILE 编译器不能建立列表文件OBJ文件或工作文件这个错误的出现可能是磁盘 满或写保护或文件已存在和只读 GENERATING INTERMEDIATE CODE 源文件包含的一个函数太大不能被编译器编译成虚拟代码尝试把函数分小或 重新编译 OPENING INPUT-FILE 编译器不能发现或打开所选的源或包含文件 PARSING INVOKE-/#PRAGMA-LINE 当在命令行检测到参数计算或在一个#pragma中检测到参数计算就产生这样 的错误 PARSING SOURCE-FILE/ANALYZING DECLARATIONS 源文件包含太多的外部参考减少源文件访问的外部变量和函数的数目 WRITING TO FILE 当写入列表文件OBJ文件或工作文件时遇到的错误

实验一、示波器的原理及使用

电子测量实验 --示波器的原理和应用 学生姓名: 学号: 院(系): 专业:

示波器的原理和应用 【目的】 1. 了解示波器的主要组成部分,扫描和同步的作用原理,加深对信号合成的理解。 2. 熟练使用示波器观察信号特征(正弦波、三角波、方波),利用李萨如图形测量信号频率。 【重点】 了解示波器的基本结构、工作原理及使用方法。 【难点】 1.熟练掌握示波器各主要旋钮的作用和用法。 2.能使用示波器观察信号特征(正弦波、三角波、方波),且会利用李萨如图形测量信号频率。【预习问题】 1. 示波器的工作原理以及主要组成部分是什么?其主要用途有哪些? 2. 如何使用示波器观察各种信号特征以及测量信号频率? 一、实验原理 示波器动态显示随时间变化的电压信号思路是将电压加在电极板上,极板间形成相应的变化电场,使进入这变化电场的电子运动情况相应地随时间变化,最后把电子运动的轨迹用荧光屏显示出来。示波器主要由示波管(见图1))和复杂的电子线路构成。示波器的基本结构见图2。 图1 示波管示意图

1.偏转电场控制电子束在视屏上的轨迹 偏转电压U 与偏转位移Y (或X )成正比关系。如图3所示:y U Y 。 图3偏转电压U 与偏转位移Y 如果只在竖直偏转板(Y 轴)上加一正弦电压,则电子只在竖直方向随电压变化而往复运动,见图4a 。要能够显示波形,必须在水平偏转板(X 轴)上加一扫描电压,见图4b 。 图4a 信号随时间变化的规律 (加在Y 偏转板) 图4b 锯齿波电压(加在X 偏转板) 示波器显示波形实质:见图5,沿Y 轴方向的简谐运动与沿X 轴方向的匀速运动合成的一种合运动。显示稳定波形的条件:扫描电压周期应为被测信号周期的整数倍,即T x =nT y ( n=1,2,3…)(见图6) 2.同步扫描(其目的是保证扫描周期是信号周期的整数倍) (1)同步的概念:为了显示如图5所示的稳定图形,只有保证正弦波到I y 点时,锯齿波正好到i 点,从而亮点扫完了一个周期的正弦曲线。由于锯齿波这时马上复原,所以亮点又回到A 点,再次重复这一过程。光点所画的轨迹和第一周期的完全重合,所以在荧光屏上显示出一个稳定的波形,这就是所谓的同步。 由此可知同步的一般条件为: T x = nT y ,n = 1,2,3… 图2 示波器的基本结构简图

相关主题