精华内容
下载资源
问答
  • keil编译器

    2012-09-23 20:17:34
    针对单片机的仿真、编程、下载的软件产生的文件可移植性强,该软件为免安装版,但必须解压到C盘根目录
  • keil编译器的使用手册

    2015-01-18 11:19:59
    keil编译器的使用手册,描述keil编译器的使用,以及相关的内容。
  • keil编译器错误

    2012-11-20 18:40:25
    这里解释了keil编译器错误,工欲善其事,必先利其器
  • 1、Keil编译器的使用步骤.ppt
  • KEIL编译器错误精心整理

    千次阅读 2015-01-16 14:20:08
    KEIL编译器错误精心整理
    C51编译器识别错类型有三种
    1、致命错误:伪指令控制行有错,访问不存在的原文件或头文件等。
    2、语法及语义错误:语法和语义错误都发生在原文件中。有这类错误时,给出
    提示但不产生目标文件,错误超过一定数量才终止编译。
    3、警告:警告出现并不影响目标文件的产生,但执行时有可能发生问题。程序
    员应斟酌处理。
    D.1 致命错误
    C_51 FATAL_ERROR
    ACTION: <当前行为>
    LINE: <错误所在行>
    ERROR: <错误信息> terminated
    或C_51 FATAL ERROR
    ACTION: <当前行为>
    FILE: <错误所在文件>
    ERROR: <错误信息> terminated
    C_51 TERMINATED C_51
    (1) ACTION 的有关信息
    *PARSING INVOKE-/#PRAGMA_LINE
    在对#pragma 指明的控制行作此法分析时出错。
    *ALLOCATING MEMORY
    系统分配存储空间时出错。编译较大程序需要512k空间。
    *OPENING INPUT_FILE
    打开文件时,未找到或打不开源文件/头文件。
    *CREATE LIST_FILE/OBJECT_FILE/WORK_FILE
    不能创建上述文件。可能磁盘满或文件已存在而且写保护。
    *PARSING SOURCE_FILE/ANALYZING DECLARATIONS
    分析源程序时发现外部引用名太多。
    *GENERATING INTERMEDIATE CODE
    源代码被翻译成内部伪代码,错误可能来源于函数太大而超过内部极限。
    *WRITING TO FILE
    在向文件(work,list,prelist或object file)写时发生错误。
    (2)ERROR的有关信息
    *MEMORY SPACE EXHAUSTED
    所有可用系统空间耗尽。至少需要512k 字节空间。没有足够空间,用户必须检查常驻内存
    的驱动程序是否太多。
    *FILE DOES NOT EXIST
    FILE 行定的文本文件名未发现。
    *CAN’T CREAT FILE
    FILE 行定义的文件不能被创建。
    *SOURCE MUST COME FROMA DISK_FILE
    源文件和头文件必须存在于硬盘或软盘上。控制台、CON、CI 或类似设备不允许作为输入
    文件。
    *MORE THAN 256 SEGMENTS/PUBLICS/EXTERNALS
    受OMF_51的历史限制,一个源程序不能超过256个各种函数的类型段,256个全局变量,
    256 个公共定义或外部引用名。不使用为变量可以减少使用的段数。使用static 存储类型说
    明符可减少全局变量的使用数目。合理调整定义性说明的位置可减少外部引用名的使用数
    目。
    *FILEWRITE ERROR
    当向list、prelist、work或object文件中写内容时,由于空间不够而发生错误。
    *NON_NULLARGUMENT EXPECTED
    所选的控制参数需要一个括号内的变量,如一个文件夹或一个数。
    *“(”AFTER CONTROL EXPECTED
    变量的左括号丢失。
    *“)”AFTER PARAMETER EXPECTED
    变量的右括号丢失。
    *RESPECIFIED OR CONFLICTING CONTROL
    所选的控制参数与前面发生冲突或重复,例如CODE和NOCOND
    *BAD DECIMAL NUMBER
    控制参数的数字含有非法数,需要使用十进制数。
    *OUT OF RANGE DECIMAL NUMBER
    控制参数的数字越界,例如OPTIMIZE 的参量为0-5。
    *IDENTIFIER EXPECTED
    控制参数DEFINE 需要一个标识符做参量,与C语言的规则相同。
    *PARSE STACK OVERFLOW
    分析栈溢出。可能是源程序包含特别复杂的表达式,或功能块嵌套数超过15。
    *PREPOCESSOR: MACRO TO NESTED
    宏扩展期间,预处理器的栈耗用太大。表明宏嵌套太多,或有递归宏定义。
    *PREPOCESSOR: LINE TOO LONG(510)
    宏扩展后行超过510个字符。
    *CAN’T HAVE GENERAL CONTROL IN INVOCATION LINE
    一般控制(如EJECT)不能是命令行的一部分,应将它们放入源文件“pragma”预处理行
    中。
    D.2 语法及语义错误
    D.2.1 错误格式
    这类错误在列表文件中产生如下格式的信息:
    ***ERROR<number>IN LINE<line>OF<file>:error message
    ***WARING<number>IN LINE<line>OF<file>:warning message
    <number>表示错误行;
    <line>表示源文件或头文件中与错误或警告相关的行;
    <file>指明了错误所在的源文件或头文件;
    D.2.2 错误信息及可能发生的原因
    *ERROR100:unprintable character 0x??skipped
    源文件中发现非法字符(注意,注解内的字符不做检查)。
    *ERROR101:unclosed string
    串未用引号结尾。
    *ERROR 102:string too long
    串不得超过511 个字符。为了定义更长的串,用户必须使用续行符‘\’逻辑的继续该串,
    在词汇分析时遇到以该符号结尾的行会与下行连接起来。
    *ERROR 103: invalid character constant
    试图再声明一个已定义的宏,已存在的宏可以用#undef指令删除。预定义的宏不能删除。
    *ERROR 104: identifier expected
    预处理器指令期望产生一个标示符,如ifdef<name>。
    *ERROR 105: unclosed comment
    当注解无结束界定符(*/)时产生此错误。
    *EROOR 106: unbalanced#if-endif controls
    endif的数量与if或ifdef的数量不匹配。
    *ERROR 107:include file nesting exceeds 9
    include指令后的文件名无效或丢失
    *ERROR 108: expected string,如#error “string”
    预处理器指令期望一个串变量。
    *ERROR 109:<user error text>
    由#error 伪指令引入的错误信息以错误信号形式显示。
    *ERROR 110:missing directive
    预处理行#后缺少伪指令。
    *ERROR 111:unknown directive
    预处理行#后不是伪指令。
    *ERROR 112:misplaced ‘elif’
    *ERROR 113:misplaced ‘else’
    *ERROR 114:misplaced ‘endif’
    指令 elif/else/endif 只有在if、ifdef、ifndef指令内才是合法的。
    *ERROR 117:bad integer expression
    if/elif指令的数值表达式有语法错误。
    *ERROR 118:missing’(‘after macro identifier
    宏调用中实参表的左括号丢失
    *ERROR 119:reuse of macro formal parameter
    宏定义形参名重复使用
    *ERROR 120:‘C’unexpected in formal list
    形参表中不允许有字符‘c’,应用逗号代替
    *ERROR 121:missing ‘)’after actual parameter
    宏调用实参表的右括号丢失
    *ERROR 122:illegal macro invocation
    宏调用的实参表与宏定义中的形参表不同
    *ERROR 123:missing macro name after ‘define’
    #define 伪指令后缺预定义的宏
    *ERROR 124:expected macro formal parameter
    宏定义要求形参名
    *ERROR 125:declarater too complex
    说明过于复杂
    *ERROR 126:type-stack underflow
    对象的声明至多只能包含20 个类型修饰符(【】,*,(),)错误126 经常在错误125 之前,
    两者一起发生。
    *ERROR 127:invalid storage class
    对象用无效的存储类所说明。当在函数外用auto/register 存储时会发生这种情况。
    *ERROR 128:memory space: illegal memory space ‘memory space ’used
    函数参数的存储类由存储模式(SMALL LARGE COMPACT)决定用户不能改变,使用不同
    于存储模式的自动变量应该为静态的存储类
    *ERROR 129:missing’ ;’before ‘token’
    该错误表示分号丢失,通常该错误会引发一连串的错误,引发的这些错误无关紧要。因为缺
    少分号后编译器不能做正确的语法分析
    *ERROR 130:value out of range
    using 或interrupt 指令后参数越限。using 用的寄存器组号位0-3,interrupt 需要0-15 的中
    断号
    *ERROR 131:duplicate function-parameter
    函数中形参名重复,形参名应彼此不同
    *ERROR 132:not in formal parameter list
    函数内参数声明使用的名字未出现在参数表中
    *ERROR 133:char function(v0,v1,v2)
    Char*v0,*v1,*v5;/ *’v5’在形参中未出现
    *ERROR 134:xdata/idata/pdata/data on function not permitted
    函数总是驻留于0x5xxxx 的code存储区,不能位于xdata/idata/pdata/data 空间
    *ERROR 135:bad storage class for bit
    位变量的定义可以接受static或extern的存储类,用REGIESTER和ALIEN 都是非法的
    *ERROR 136:‘void’on variable
    ‘void’类型只允许作为函数的返回类型或与指针类型合用(void*)
    *ERROR 137:illegal parameter type:’function’
    函数参数的类型不能是函数,然而函数指针可以作为参数
    *ERROR 138:interrupt ()may not receive or return value (s)
    中断函数既不能有参数又不能有返回值
    *ERROR 139:illegal use of ‘alien’
    关键字alien 将函数定义为PL/M51 规定的过程与函数结构。这意味着C函数中有参数的缩
    记符号(即funct(…);)时是不能用alien的
    *ERROR 140:bit in illegal memory-space
    位变量的定义可包含修饰符DATA,如果无修饰符则假定为DATA。因为位变量始终位于
    0x4xxx 的内部数据存储器中,当试图采用其他存储空间就会产生这个错误。
    *ERROR 141:NEAR<token>:expected<token>
    编译器所见的单词是错误的。期望正确的单词
    *ERROR 142:invalid base address
    Sfr 说明中的基址有错。有效基址为0x80-0xff。如果声明采用base^pos 形式,则基址是8的
    整数倍
    *ERROR 143:invalid absolute bit position
    Sbit 说明中位地址必须在0x80-0xff之间
    *ERROR 144:base^pos:invalid bit position
    Sbit 说明中位pos必须在0~7之间
    *ERROR 145:undeclared sfr
    Sfr 未说明
    *ERROR 146:invalid sfr
    绝对位地址说明(base^pos)包含无效的基地址。这个基地址必须与sfr 名相对应
    *ERROR 147:object too large
    对象不能超过65536(64k)字节
    *ERROR 148:field not permitted in union
    联合不能包含位成员,这个限制是由8051结构决定的。
    *ERROR 149:function member in struct/union
    结构或者联合不能包含函数类型的成员。但是指向函数的指针是允许的
    *ERROR 150:bit member in struct/union
    结构或者联合不能包含位类型的成员,这个限制是由8051 结构决定的
    *ERROR 151:self relative struct/union
    结构或者联合不能包含自身
    *ERROR 152:bit field type too small for number of bits
    位域声明中指定的位数超过所给原型中位的数量
    *ERROR 153:named bit-field cannot have 0 width
    命名的域宽度为0 错误,只有未命名的位域允许是0宽度
    *ERROR 154:pro to field
    无指向位域指针的类型
    *ERROR 155:char/int required for fields
    位域基类型要求char 或int类型,unsigned char 或unsigned int 也有效
    *ERROR 156:alien permitted on function only
    Alien 只能用于函数
    *ERROR 157:var_parms on alien function
    有变参数的函数不能用alien ,因为PL/M51函数只能用固定数量的参数
    *ERROR 158:function contains unnamed parameter
    函数定义的参数表中包含无名参数。无名参数只允许用于函数的原型中
    *ERROR 159:type follows void
    函数原型声明中可含一个空的参数表f(void)。Void后不能再用其他类型定义
    *ERROR 160:void invalid
    Void类型只能与指针合用或表明函数没有返回值
    *ERROR 161:formal parameter ignored
    函数内的外部函数引用声明使用了无类型的参数表。例如“ extern(a,b,c);”要求形参表
    *ERROR 162:duplicate function-parameter
    函数内参数名重复
    *ERROR 163:unknown array size
    一般的不管是一维数组还是多维数组或外部数组,都需要指定数组的大小,这个大小是由编
    译器的初始化时计算,这个错误表明试图为一个未定维的数组使用sizeof运算符,会哦着一
    个多维数组的附加元素未定义。
    *ERROR 164:ptr to null
    这一个错误通常是由前一个错误造成的
    *ERROR 165:ptr to bit
    指向位的指针不是合法的类型
    *ERROR 166:array of function
    数组不能包含函数,但可能包含指向函数的指针。
    *ERROR 167:array of fields
    位域不能安排为数组
    *ERROR 168:array of bit
    数组没有位类型
    *ERROR 169:function returns function
    函数不能返回函数,但可以返回一个指向函数的指针
    *ERROR 170:function returns array
    函数不能返回数组,但可返回指向数组的指针
    *ERROR 171:missing enclosing swith
    Break/continue 语句只能出现在for,while,do while或switch语句中间。
    *ERROR 172:missing enclosing swith
    Case语句只能用在switch语句中
    *ERROR 173:missing return-expression
    返回类型不是integer 的函数必须包含一条代表达式的return 语句。由于要与老版本兼容,
    编译器对返回整形值的函数不做检查
    *ERROR 174:return-expression on void-function
    Void 函数不能返回值,因此不能包含带表达式return的语句
    *ERROR 175:duplicate case value
    每个case 语句必须包含一个常量表达式做其变量,这个值不能在switch 语句的各级中出现
    多次
    *ERROR 176:more than one default
    Switch语句中不能包含多于一个的default语句
    *ERROR 177:different struct/union
    赋值或参数传递中使用了结构/联合的不同类型
    *ERROR 178:struct/union comparison illegal
    根据ANSI C,两个结构或联合的比较是不允许的
    *ERROR 179:cannot/cast from/to void-type
    将void类型转化为其他类型数据或将其他类型转化为void类型都是非法的
    *ERROR 180:cannot cast to’function’
    转化为function是非法的,使用函数指针指向不同的函数
    *ERROR 181:incompatible operand
    在所给的运算符中至少有一个操作符类型是无效的
    *ERROR 182:point to different object
    报告指针使用不一致
    *ERROR 183:unmodifiable value
    预修改的对象位于CODE 存储区,因而不能修改
    *ERROR 184:sizeof :illegal operand
    Sizeof运算符不能决定函数或位域大小
    *ERROR 185:different memory space
    对象说明的存储空间与前面的不一致
    *ERROR 186:invalid dereference
    这条错误信息可能由编译器内部问题产生的
    *ERROR 187:not an lvalue
    所需参量必须是可变对象的地址
    *ERROR 188:unknown object size
    无法计算对象的大小,因为缺少数组的维数或因为通过void指针的间接访问
    *ERROR 189:‘&’on bit/sfr illegal
    地址操作符‘&’不允许用于位对象或sfr
    *ERROR 190:’&’:not an lvalue
    地质部是可变的对象,不能作为左值
    *ERROR 191:‘&’on constant
    试图为所列类型常数建立指针
    *ERROR 192:‘&’on array/function
    地址操作符&不允许用于数组或函数,函数和数组本身都代表了地址
    *ERROR 193:illegal op-type(s)
    *ERROR 193:illegal add/sub on ptr
    *ERROR 193:illegal operation on bit(s)
    *ERROR 193:bad operand type
    当一个表达式使用给定运算符的非法操作类型时就会出现该错误,使用个定运算符的非法操
    作类型的无效的表达式,例如bit+bit,ptr+ptr,或ptr*<any>。错误信息包括引起错误的运算符。
    下列运算可使用位操作符
    赋值(=)
    OR/复合OR(|,|=)
    AND/复合AND(&,&=)
    XOR/复合XOR(^,^=)
    位或常数的安位比较(= =,!=)
    取反(~)
    *ERROR 194:’*’indirection to object of unknown size
    间接操作符*不能用于void指针(void*),因为指针所指的对象的大小时未知的
    *ERROR 195:’*’illegal indirection
    间接操作符*不能用于非指针变量
    *ERROR 196:mspace probably invalid
    产生此警告是因为某些常数值赋给指针并且常数没有形成一个有效的指针值,有效的指针常
    数类型为long/unsigned long。编译器对指针对象采用24bit(3 字节),低16 位表示偏移,高
    8 位表示存储类的选择,在低字节中,值从1 到5 表明了xdata/pdata/idata/data/和code 的存
    储类
    *ERROR 197:illegal pointer assignment
    试图将一个非法变量赋给指针,只有另一个指针或指针变量可以赋给指针
    *ERROR 198:size of returns zero
    求某些对象长度得到0,如果对象是外部的或一个数组中并非所有维的大小都是已知时得到
    0,这时候该值可能是错的。
    *ERROR 199:left size of’->’requires struct/union pointer
    ->操作符的左边变量必须是结构或变量
    *ERROR 200:left size of ‘.’requires struct/union
    操作符的左边变量必须是结构/联合
    *ERROR 201:undefined struct/union tag
    所给的结构/联合标记名是未知的
    *ERROR 202:undefined identifier
    所给的标示符未定义
    *ERROR 203:bad storage class(nameref)
    该错误表示编译器的内部有问题
    *ERROR 204:undefined member
    所给的结构/联合成员名未定义
    *ERROR 205:cannot call an interrupt function
    中断函数不能像普通函数那样调用,因为这种函数的头端和尾端是为中断特殊编码的
    *ERROR 206:missing function-prototype
    调用的函数缺少原型说明
    *ERROR 207:declared with ‘void’ parameter list
    用void参数说明的函数不接受调用者传来的参数
    *ERROR 208:too many actual parameter
    函数调用包含了多余的实参
    *ERROR 209:too few actual parameter
    函数调用时传递的实参过少
    *ERROR 210:too many nested calls
    超过了10 个函数嵌套调用的极限
    *ERROR 211:call not to a function
    函数调用时没有函数的地址或未对指向函数的指针赋值
    *ERROR 212:indirect call with parameter
    由于参数传递方法的限制,通过指针的间接函数调用不能直接作为实参。这种参数传递方法
    要求被调用的函数名已知,因为参数的写入要被写入调用函数的数据段。然而间接调用时函
    数的的名字时未知的
    *ERROR 213:left side of assign_op not an lvalue
    在赋值操作符左边要求可变的对象
    *ERROR 214:cannot cast non_pointer to pointer
    非指针不能转化为指针
    *ERROR 215:cannot cast pointer to not_int/pointer
    指针可以转化为另一个指针或整数,但不能转化为其他类型
    *ERROR 216:subscript on non_array or too many dimensions
    对非数组使用了下标或数组维数过多
    *ERROR 217:non_integral index
    数组的下标表达式必须是整型类型
    *ERROR 218:void_type in controlling expression
    While,for 或do while语句中表达式不能是void类型
    *ERROR 219:long constant truncated to int
    企图把长整型常量截断为整型数是错误的
    *ERROR 220:illegal constant expression
    非法常量表达式
    *ERROR 221:non_constant case/dim expression
    Case值或下标值([])要求用常量表达式
    *ERROR 222:div by zero
    *ERROR 223:mod by zero
    编译器检测到0 除或0 模的错误
    *ERROR 224:illegal operation on float/double
    AND 和NOT一类的运算符不允许作用于float/double
    *ERROR 225:expression too complex ,simplify
    表达式太复杂,必须简化
    *ERROR 226:duplicate struct/union/enum tag
    结构/联合/枚举类型中有重复标记
    *ERROR 227:not a union tag
    所给的标记名虽已定义,但不是联合的标记
    *ERROR 228:not a struct tag
    所给的标记名虽已定义,但不是结构的标记
    *ERROR 229:not an enum tag
    所给的标记名虽已定义,但不是枚举的标记
    *ERROR 230:unknown struct/union/enum tag
    所给的结构/联合/枚举标记名未定义
    *ERROR 231:redefinition
    所给的名字已经定义,不能再定义
    *ERROR 232:duplicate label
    所给的标号已经订义
    *ERROR 233:undefined label
    当对函数进行分析后,编译器检查到函数有未定义的标号,发出错误信息
    *ERROR 234:‘{’scope stack overflow(31)
    超过了最大为31 个的功能嵌套极限,多余的块被忽略
    *ERROR 235:parameter<number>:different type
    函数实参类型与函数原型中的不同
    *ERROR 236:different length of parameter lists
    所给的函数是参量与函数原型中的不同
    *ERROR 237:function already has body
    试图定义已经定义过的函数
    *ERROR 238:duplicate member
    *ERROR 239:duplicate parameter
    重复定义结构成员或函数参数
    *ERROR 240:more than 128 local bit’s
    位变量定义总数不能超过128
    *ERROR 241:auto segment too large
    局部对象要求的空间超过了该模式的最大值。最大栈长定义如下:SMALL-128 字
    节,COMPACT-256字节,LARGE-64k
    *ERROR 242:too many initializers
    初始化对象超限
    *ERROR 243:string out of bounds
    串中字符数超过了字符数组要求初始化的字符数
    *ERROR 244:can’t initialize .bad type or class
    试图初始化位或sfr
    *ERROR 245:unknown pragma, line ignored
    未知的pragma 语句,因此该行被忽略
    *ERROR 246:floating point error
    本错误发生在浮点变量超过32 位有效字长时,32 位IEEE 格式的浮点值的取值范围是±
    1.75494E-38~±3.402832E+38
    *ERROR 247:non_address +/-constant initializer
    有效的初始化表达式必须是非地址量+/-常量
    *ERROR 248:aggregate initialization needs curly braces
    所有的组合变量(数组/结构或联合)初始化时要用花括号括起来
    *ERROR 249:segment<name>:segment too large
    编译器检测到过大的数据段,最大数据段长取决于存储器空间
    *ERROR 250:‘\esc’;value exceeds 255
    串常数中\esc转义序列的值超过有效域
    *ERROR 251:illegal octal digit
    不是有效的八进制数字
    *ERROR 252:misplace primary control、line ignored
    一次性使用的编译控制伪指令必须在C模块开头指定,在#INCLUDE 语句和变量说明之前
    *ERROR 253:internal ERROR(ASMGEN\CLASS)
    这种错误在以下情况下发生⑴内部函数(如testbit)被不正确激活。它发生在函数原型和实
    参表不存在匹配问题的时候。基于这个原因,头文件中的使用要适当(intrins.h,string.h)。
    ⑵C51识别出存在内部一致性错误,请向您的销售代理商查询
    *ERROR 255:switch expression has illegal type
    Switch语句中的case语句必须具有类型(u)char,(u)int 或(u)short,其他类型不允许(如bit)
    *ERROR 256:conflicting memory model
    Alien 属性的函数只能使用SMALL模式。函数的参数必须位于内部数据存储空间
    *ERROR 257:alien function can not be reentrant
    “alien”属性的函数不能同时具有“reentrant”属性,函数的参数不能通过重入栈传递,这也
    适用于外部“alien”声明和“alien”函数
    *ERROR 258:mspace illegal on struct/union member
    不能为结构联合成员指定存储空间,但指向对象的指针可以
    *ERROR 259:pointer: different mspace
    当为指针赋值或做指针比较时,指针未指向存储在同一存储空间的对象时,会产生错误或者
    警告。如:
    Char xdata *px;/*px to char in xdata memory*/
    Char code *pc;/*pc to char in code memory*/
    Void main()
    { char c;
    If(px==pc)++c;/*warning 259*/
    }
    *ERROR 260:pointer truncation
    指针转换时部分偏移量被截断,此时指针常量(如char xdata)转为一个具有较小偏移区的
    指针(如char idata)
    *ERROR 261:bit in reentrant function
    重入函数不能包含位变量,因为位变量不能存于重入栈,而只能位于MCS51CPU的可位寻
    址存储区中如:
    Void test () reentrant
    { bit b0;/*illegal*/
    Static bit b1;/*legal*/
    }
    *ERROR 262:’using/disable’: function returns bit
    使用属性using选择寄存器组的函数或使用关中断(#pragma disable)功能的函数不能返回
    bit类型。如:
    Bit test ()using 3/*error 261*/
    { bit b0;
    return(b0);
    }
    *ERROR 263:save-stack overflow/underflow
    “#pragama save”最大嵌套级为8 级。Save 和restore 指令按FIFO 原则工作
    *ERROR 264:intrinsic<intrinsic_name>:declaration/ activation error
    内部参数定义不正确
    *ERROR 265:<name>recursive call to non_reentrant function
    发现非重入函数被递归调用。直接递归用生成代码可有效查出,间接递归调用由L51 发现
    L51 连接定位器使用错误提示
    1 警告
    警告并不终止L51 的执行。这时产生的程序模块由程序员自己斟酌使用还是不使用。但是
    此时的列表文件和屏幕显示可能非常有用。
    2 错误
    错误并不终止L51 的执行。这时产生的模块是不能使用的。但是此时的列表文件和屏幕显
    示可能非常有用。
    3 致命错误
    致命错误发生时立即终止L51 的执行。
    1警告
    *WARNING1:UNSOLVED EXTERNAL SYMBOLS
    SYMBOLS: external_name
    MODULE: filename (modulename)
    指定模块的外部符号在PUBLIC符号表中找不到
    *WARNING2:REFERENCE MADE TO UNSOVED EXTERNAL
    SYMBOLS: external_name
    MODULE: filename (modulename)
    ADDRESS:code_address
    访问了未能匹配的外部符号code地址
    *WARNING4:DATA SPACE MEMORY OVERLAP
    FROM:byte,bit,address
    TO: byte,bit,address
    数据空间指定范围出现覆盖
    *WARNING5:CODE SPACE MEMORY OVERLAP
    FROM:byte,bit,address
    TO: byte,bit,address
    程序空间指定范围出现覆盖
    *WARNING6:XDATA SPACE MEMORY OVERLAP
    FROM:byte,bit,address
    TO: byte,bit,address
    外部数据空间指定范围出现覆盖
    *WARNING7:MODULE NAME NOT UNIQUE
    MODULE:filename(modulename)
    模块名重名。模块未处理
    *WARNING8:MODULE NAME EXPLICITLY REQUESTED FROMANOTHER FILE
    MODULE:filename(modulename)
    其他文件指名要求本模块名
    *WARNING9:EMPTYABSOLUTE SEGMENT
    MODULE:filename(modulename)
    本模块包含空的绝对段,因未定位,它可能在不通知的情况下随时被覆盖
    *WARNING10:CANNOT DETERMINE ROOT SEGMENT
    L51 对输入文件要求分辨是C51还是PL/M文件,然后进行流程分析,在无法确定的时候,
    发出本警告。它发生在主程序被汇编调用的时候,需要程序员用OVERLAP 特殊控制选项
    进行干预
    *WARNING11:CANNOT FIND SEGMENT OR FUNCTION NAME
    NAME:overlap_control_name
    在目标模块中找不到OVERLAP控制选项中规定的段或者函数间调用
    *WARNING12:NO REFERENCE BETWEEN SEGMENTS
    SEGMENT1:segment_name
    SEGMENT2:segment_name
    试图用OVERLAP控制选项删除本来不存在的段间访问或者函数间调用
    *WARNING13:RECURSIVE CALL TO SEGMENT
    SEGMENT:segment_name
    CALLER:segment_name
    CALLER段递归调用SEGMENT段。PL/M51和C51的非重入函数不允许递归调用
    *WARNING14:IMCOMPIABLE MEMORYMODEL
    MODULE:filename(modulename)
    MODEL:memory_model
    指定模块试图与以前不同的存储模式编译。
    *WARNING15:MULTICALL TO SEGMENT
    SEGMENT:segment_name
    CALLER1:segment_name
    CALLER2:segment_name
    两个函数调用同一个函数(如主函数和中断函数),参数和局部变量将被覆盖
    *WARNING15:UNCALLED SEGMENT,IGNORED FOR OVERLAP PROCESS
    SEGMENT:segment_name
    所给的段未被调用,已被排除在覆盖过程之外。
    L51错误
    *ERROR101: SEGMENT COMBINATION ERROR
    SEGMENT:segment_name
    MODULE:filename(modulename)
    由于连接错误所给段未能连入类型总段,并被忽略
    *ERROR102:EXTERN ATTRIBUTE MISMATCH
    SYMBOL:external_name
    MODULE:filename(modulename)
    所给外部符号名属性错,并被忽略
    *ERROR103:EXTERN ATTRIBUTE DO NOTMATCH PUBLIC
    SYMBOL:public_name
    MODULE:filename(modulename)
    所给外部符号名属性与公用符号名不匹配,并被忽略
    *ERROR104:MUTIPULIC DEFINITION
    SYMBOL:pulic_name
    MODULE:filename(modulename)
    所给公用符号重名
    *ERROR105:PUBLIC REFERS TO IGNORED SEGMENT
    SYMBOL:public_name
    MODULE:filename(modulename)
    所给外部符号名属性错,并被忽略
    *ERROR106: SEGMENT OVERFLOW
    SEGMENT:segment_name
    所给段长超过64,未处理
    *ERROR107:ADDRESS SPACE OVERLAP
    SPACE:space_name
    SEGMENT:segment_name
    由于存储空间不够,所给类型总段未能装入,已被忽略
    *ERROR108:SEGMENT IN LOCATING CONTROL CANNOTALLOCATED
    SEGMENT:segment_name
    命令行定位控制中的段由于属性问题未能分配
    *ERROR109:EMPTY RELOCATABLE SEGMENT
    SEGMENT:segment_name
    可在定位类型总段长度为零,未定位
    *ERROR110:CANNOT FIND SEGMENT
    SEGMENT:segment_name
    命令行所给的段在输入模块中未找到,被忽略
    *ERROR111:SPECIFIED BITADDRESS NOT ON BYTE MEMORY
    SEGMENT:segment_name
    位地址不在字界上,位段被忽略
    *ERROR112:SEGMENT TYPE NOT LEGAL FOR COMMAND
    SEGMENT:segment_name
    命令行所给的段类型非法,被忽略
    *ERROR114:SEGMENT DOES NOT FIT
    SPACE:space_name
    SEGMENT:segment_name
    BASE:base_address
    LENGTH: segment_length
    由于所给段的长度或者基地址未定位,故被忽略
    *ERROR115:INPAGE SEGMENT IS GREATER THAN 256 BYTES
    SEGMENT:segment_name
    所给INPAGE 属性的段长于256字节未能连入类型总段,并被忽略
    *ERROR116:INBLOCK SEGMENT IS GREATER THAN 2048 BYTES
    SEGMENT:segment_name
    所给INBLOCK 属性的段长于2048字节未能连入类型总段,被忽略
    *ERROR117:BITADDRESSABLLE SEGMENT IS GREATER THAN 16 BYTE
    SEGMENT:segment_name
    所给BITADDRESSABLE 属性的段长于16 字节未能连入类型总段,被忽略
    *ERROR118:REFERENCE MADE TO ERRONEOUS EXTERNAL
    SYMBOL:symbol_name
    MODULE:file_name(modulename)
    ADDRESS:code_address
    企图访问错误的外部程序地址
    *ERROR119:REFERENCE MADE TO ERRONEOUS SEGMENT
    SYMBOL:symbol_name
    MODULE:file_name(modulename)
    ADDRESS:code_address
    企图访问错误段的程序地址
    *ERROR120:CONTENT BELONGS TO ERROREOUS SEGMENT
    SEGMENT:segment_name
    MODULE:file_name(modulename)
    该内容属于有错误的段
    *ERROR121:IMPROPER FIXUP
    MODULE:file_name(modulename)
    SEGMENTsegment_name
    OFFSET:segment_name
    根据所给段和偏移地址的到的是不当的地址
    *ERROR122:CANNOT FIND MODULE
    MODULE:file_name(modulename)
    命令行所给的模块未能找到
    L51 致命错误
    *FATAL ERROR201:INVALID COMMAND LINE SYNTAX
    Partial command line
    命令行句法错。命令行显示到出错处。
    *FATAL ERROR202:INVALID COMMAND LINE ,TOKEN TOO LONG
    Partial command line
    非法命令行,单词太长。命令行显示到出错处
    *FATAL ERROR203:EXPECTED ITEM MISSING
    Partial command line
    缺项。命令行显示到出错处。
    *FATAL ERROR204:INVALID KEYWORD
    Partial command line
    非法关键字
    *FATAL ERROR205:CONSTANT TOO LONG
    Partial command line
    常量大于0xffff。命令行显示到出错处。
    *FATAL ERROR206:INVALID CONSTANT
    Partial command line
    命令行常量无效(如16 进制数以字母开头)。命令行显示到出错处。
    *FATAL ERROR207:INVALID NAME
    Partial command line
    模块名或段名无效。命令行显示到出错处。
    *FATAL ERROR208:INVALID FILENAME
    Partial command line
    文件名无效。命令行显示到出错处。
    *FATAL ERROR209:FILE USED IN CONLICTING CONTEXTS
    FILE:filename
    所给的文件名用于有矛盾之处。命令行显示到出错处。
    *FATAL ERROR210:I/O ERROR ON INPUT FILE
    System error message
    FILE:filename
    访问输入文件时检测到有错,并有后面的EXCEPTION 给出具体的错误描述
    *FATAL ERROR211:I/O ERROR ON OUTPUT FILE
    System error message
    FILE:filename
    访问输出文件时检测到有错,并有后面的EXCEPTION 给出具体的错误描述
    *FATAL ERROR212:I/O ERROR ON LISTING FILE
    System error message
    FILE:filename
    访问列表文件时检测到有错,并有后面的EXCEPTION 给出具体的错误描述
    *FATAL ERROR213:I/O ERROR ONWORK FILE
    System error message
    FILE:filename
    访问工作文件时检测到有错,并有后面的EXCEPTION 给出具体的错误描述
    *FATAL ERROR214:I/O INPUT PHASE ERROR
    MODULE:filename(modulename)
    L51 在进行第二次扫描时遇到不同的数据发生该错误,可能是因汇编错误引起
    *FATAL ERROR215:CHECK SUM ERROR
    MODULE:filename(modulename)
    校验和与文件内容不一致
    *FATAL ERROR216:INSUFFICIENTMEMORY
    MODULE:filename(modulename)
    执行L51 的内存空间不够
    *FATAL ERROR217:NO MODULE TO BE PROCESSED
    缺少应该被处理的模块
    *FATAL ERROR218:NOTAN OBJECT FILE
    FILE:filename
    所给文件非目标文件
    *FATAL ERROR219:NOTAN 8051 OBJECT FILE
    FILE:filename
    所给文件非8051 目标文件
    *FATAL ERROR220:INVALID INPUTMODULE
    FILE:filename
    所给输入模块无效,可能是由汇编错误引起的
    *FATAL ERROR221:MODULE SPECIFIED MORE THAN ONCE
    Partial command line
    命令行上多次包含同一模块。命令行显示到出错处
    *FATAL ERROR222:SEGMENT SPEXIFIED MORE THAN ONCE
    Partial command line
    命令行上多次包含同一段。命令行显示到出错处
    *FATAL ERROR224:DUPLICATE KEYWORD OR CONFLICATING CONTROL
    Partial command line
    命令行上多次包含同一关键字或者存在相互矛盾的控制选项。命令行显示到出错处
    *FATAL ERROR225:SEGMENTADDRESS ARE NOT IN ASCENDING ORDER
    Partial command line
    定位控制的段地址未按照升序显示。命令行显示到出错处
    *FATAL ERROR226:SEGMENTADDRESS INVALID FOR CONTROL
    Partial command line
    定位控制的段的段地址无效。命令行显示到出错处
    *FATAL ERROR227:PARAMETER OUT RANGE
    Partial command line
    所给PAGEWIDTH 和PAGELENGTH 参数越界。命令行显示到出错处
    *FATAL ERROR228:PARAMETER OUT RANGE
    Partial command line
    命令行上RAMSIZE 参数越界。命令行显示到出错处
    *FATAL ERROR229:INTERAL PROCESS ERROR
    Partial command line
    L51 检测到内部处理错。请询问代理商
    *FATAL ERROR230:STRARTADDRESS SPECIFIED MORE THAN ONCE
    Partial command line
    命令行上包含多个未命名组段的起始地址。命令行显示到出错处
    *FATAL ERROR233:ILLEGAL USE OF *IN OVERLAY CONTROL
    Partial command line
    命令行OVERLAY 定位选择非法使用了*号(如*!*或*~*)。命令行显示到出错处
    E.5 异常信息
    L51 某些错误的原因由系统的EXCEPTION 给出。
    *EXCEPTION 0021:PATH OR FILE NOT FOUND
    路径名或文件名未找到。
    *EXCEPTION 0026H:ILLEGAL FILE ACCESS
    试图写或者删除写保护文件。
    *EXCEPTION 0029H:ACCESS FILE DENIED
    所给的文件实际是目录。
    *EXCEPTION 002AH:I/O-ERROR
    欲写的驱动器已满或未准备好。
    *EXCEPTION 0101H:ILLEGAL CONTEXT
    命令行的语意非法。如对打印机进行读操作。
    附录 F C51的极限值
    *标示符最长255 个字符,一般取32 字符。大小写不敏感。
    *case语句的变量个数没有限制,仅受可用内存容量和函数的最大长度限制。
    *函数嵌套调用最大深度为10。
    *功能块{….}最大嵌套深度为15。
    *宏最多嵌套为8。
    *函数以及宏的参数最多为32个。
    *语句行和宏定义最多510 个字符(宏扩展后是510个字符)
    *头文件嵌套深度为20。
    *预处理器中的条件编译层最多为20。
    *关于INTEL目标模块格式(OMF-51)的极限值。
    *函数类型段总和最多256 个。
    *全局符号(PUBLIC)最多256 个。
    *外部符号(EXTERNAL)最多256 个。
    展开全文
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列027_lcdlm3229编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列026_lcdlm4287编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列025_lcdlm4265编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列024_lcdlm4228编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列001_跑马灯编程代码和仿真操作实验
  • MDK Keil编译器编译窗口的设置

    千次阅读 2017-07-28 17:21:20
    MDK Keil编译器编译窗口的设置 在使用MDK Keil编译器时会遇到一些和编辑窗户设置相关的问题,如字体的大小、颜色,字符字符串的颜色等。现按照配置(configuation)的顺序归纳如下: 首先打开Keil编译界面,打开右...

    MDK Keil编译器编译窗口的设置

    在使用MDK Keil编译器时会遇到一些和编辑窗户设置相关的问题,如字体的大小、颜色,字符字符串的颜色等。现按照配置(configuation)的顺序归纳如下:

    首先打开Keil编译界面,打开右上角的configuation(配置),如下图所示。


    打开configuation后界面如下图。


    1)     Editor

    GeneralEditor Settings 中默认前两个勾上,View White Space若勾上,则会在空格的地方添加·····其界面如下


    所以此选项一般勾掉不选。

    在右边的Function Dispiay 中三个不选,用不到。

     

     

    中间的Look&Feel是设置显示效果的,1处Highlight Current Line是当前行高亮,Highlight matching and matched braces 是突出显示匹配的括号。中间右边2处Files&Projects Handing 是设置文件和工程的,需要勾上Save Projects before entering debug和SaveProjects before entering debug可以在进入每次Debug之前保存文档和工程。3处的是设置C/C++编译窗口的tab键代表几个空格和显示行号,4处的是设置ASM(汇编)编译窗口的tab键代表几个空格和显示行号。

    2)     Colors&Fonts

    如下图:


    前三个分别是设置汇编窗口、C语言窗口、C++窗口的,现在先看C语言出口的,其他两个窗口类似。


    1处是设置颜色和字体的,2处设置前景和后景的,下面主要说明从text往下的设置;

    Text Selection 是被选中的部分显示的颜色和背景颜色。如下图背景蓝色,字体白色


    Number是选择数字的。

    Operator是运算符的设置,主要设置分号逗号等。

    /*comment*/和//comment是被/*.....*/注释和单行注释的颜色。

    Keyword是关键字,C语言中如void extern int double int char signed static typedef等等。一般设置为蓝色。

    String 是字符串,即在双引号””内的字符数字等,一般设置为显眼的颜色。

    Identifier是标示符,即一般的代码文字,白背景下通常设置为黑色。

    Preprocessor commond 是预处理命令,如#define #include #ifndef #endif等,通常设置为蓝色。

    Decimal Number 十进制数,也就是设置十进制数的颜色和背景。

    Float Number 是浮点型数字,带小数点的数。

    Octal number 是八进制数。以0开头,后续跟0-7之间的数据

    Hexadecimal number是十六进制数。以0x开头,后续跟0-F之间的数据

    Character是字符,即在单引号‘’之间的字符。

    Label是标号,如需要使用跳转指令goto时指向的地方。

    User keyword是用户关键字,用户可以设置自己的关键字

    Bracket是括号,Block是花括号。

    Preprocessor string <stdio.h> 是尖括号内的字符串

    Matching braces是匹配的括号,Mismatched braces是不匹配的括号

    Current line是当前行的显示。

    剩下的汇编和C++的设置同上。

    其他的地方如调试窗口、串口窗口默认即可,如下


    3)     User Keywords

    用户关键字是非常非常好用的一个功能,它可以使你自己定义的关键字像系统关键字一样高亮显示。假如你有想写一个移植性比较高的程序,通常一些和编译器无关的变量类型需要这样定义:

    typedef unsigned char  uint8;                  /*  无符号8位整型变量  */

    typedef signed   char int8;                      /* 有符号8位整型变量 */

    typedef unsigned short uint16;                /* 无符号16位整型变量 */

    uint8 test;     //定义变量

    这样有一个什么问题呢?就是uint8这个虽然是用户定义的关键字,但是它并不能像系统关键字那样高亮显示。怎么办呢?完全有办法解决,而且就是在这个标签卡中就可完成。方法如下:

    a.打开User Keywords标签卡。在左侧窗口选择文件类型,比如ARM:Editor C File;在右侧窗口点击 按钮,新建一个用户关键字编辑框,输入用户定义的关键字,比如uint8,这样在程序代码中,所有的uint8都会高亮显示。

    4)     Shortcut Keys(快捷键)

    这里快捷键如果设置得当将会带来很大的方便,现列举常用的依次如下:

    Debug时一些快捷键:

    Disable all breakpoint      禁止所有断点       Ctrl+F2

    Disable/Enable breakpoint   使能/ 禁止该断点   F2

    Insert/remove breakpoint    插入/移除断点      F5

    Kill all breakpoint         移除所有断点       Ctrl+F5

    Run                         执行代码运行       F6

    Step                        单步运行           F7

    Step Out                    跳出当前的函数     F8

    Step Over                   跳出该条语句       F9

    Stop                        停止               F10

    Run to Cursor line          运行到光标处       F11

    和Edit Advanced相关的

    Comment selection           注释选择的部分     Ctrl+K

    Uncomment selection         释放被注释的部分   Ctrl+M

    Go to line                  跳到指定行         Ctrl+G

    Go to matching braces     跳到匹配的大、小括号Ctrl+E

    Indent selection            缩进选择           Ctrl+I

    Make lowercase              使小写             Ctrl+U

    Make uppercase              使大写             Ctrl+shift+U

    和Edit相关的

    Undo                        撤销               Ctrl+Z

    Redo                        恢复               Ctrl+YCtrl+shift+Z

    Download                    下载               Ctrl+D

    Build                       编译               Ctrl+B

    Build all targets           编译所有           Ctrl+shift+B

    5)     Templates(模板)

    这里是设置模板,有自带的也可以自己建立,大大的方便了使用。例如在建立子函数时可以同时加入注释说明,如下图

     

    因而模板的使用会带来极大地便捷,方便了模块化编程。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • Proteus8.9 VSM Studio Keil编译器仿真freeRTOS_STM32F103R6_系列001_跑马灯仿真代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真STM32F103R6系列_023_ili9340 16BUS编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列022_lcdNokia3310_5510编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列017_lcd12864横屏编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列015_lcd2004一线屏编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列012_lcd1602一线屏编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列014_iic_lcd1602编程代码和仿真操作实验
  • C语言keil编译器提示错误的解决方法欢迎大家使用
  • Proteus8.9 VSM Studio Keil编译器仿真freeRTOS_STM32F103R6_系列11_lcd1602并口仿真代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真RtThread RealTime STM32F103R6_系列001_跑马灯代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列016_lcd1602_4bit编程代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列013_iic_AT24C1024编程代码和仿真操作实验
  • 一,打开文件(可以随文下载放置...四,编辑main.c 代码如Proteus8.9 Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列011_lcd1602并口(如下图6所示) 图6 五,Main.c 代码: #include <reg51.h> #include &

    一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
    在这里插入图片描述
    图1

    二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
    在这里插入图片描述
    图2

    在这里插入图片描述
    图3

    在这里插入图片描述
    图4

    三,点击Source Code标签。(如下图5所示)
    在这里插入图片描述
    图5

    四,编辑main.c 代码如Proteus8.9 VSM Studio Keil编译器仿真STM32F103R6系列011_lcd1602并口(如下图6所示)
    在这里插入图片描述
    图6

    五,Main.c 代码:

    #include “delay.h”
    #include “usart.h”
    #include “led.h”
    #include “lcd1602.h”

    int main(void)
    {
    u16 l;
    RCC_ClocksTypeDef RCC_Clocks; //初始化程序
    RCC_Configuration(); //时钟设置
    RCC_GetClocksFreq(&RCC_Clocks);

    USART1_Init(57600); //串口初始化(参数是波特率)
    
       LED_Init();                     //初始化LED端口 if(USART_RX_STA&0x8000) 
       GPIOSt_Init();
    	GPIOB->ODR= (0xff<<8);
    	lcd_init();
    
        for(l=0; l<5000; l++) delay_ms(1);      
       LED0=1;
    	printf("LED0灯亮!\r\n");
       LED1=0; 
    	printf("LED1灯灭!\r\n");
       while(1)
       {			
    		LClear();
    		for(l=0; l<5000; l++) delay_ms(1);
    		ShowStr(1, 0, "Kaillen Work", 12);
    		ShowStr(2, 1, "Wellcom YOU!", 12);
    		for(l=0; l<50000; l++) delay_ms(1);
    		LED0=~LED0;
    	   printf("LED0转换!\r\n");
    		for(l=0; l<50000; l++) delay_ms(1);
    		LED1=~LED1;
    	   printf("LED1转换!\r\n");
    		LClear();
    		for(l=0; l<5000; l++) delay_ms(1);
    		ShowStr(1, 0, "Code Made", 9);
    		ShowStr(2, 1, "---Ziegler Yin", 14);
    		for(l=0; l<50000; l++) delay_ms(1);
     }
    

    }

    Lcd1602.h:
    #ifndef LCD1602_H
    #define LCD1602_H

    #include “delay.h”

    void GPIOSt_Init(void);
    void delay(int z);
    void WaitReady(void);
    void write_com(u8 com);
    void write_data(u8 dat );
    void SetCursor(u8 x, u8 y);
    void ShowStr(u8 x, u8 y, char *str, u8 len);
    void ShowChar(u8 x, u8 y, char str);
    void lcd_init(void);
    void LClear(void);

    #endif

    六,点击构建工程按钮,编译工程。(如下图7所示)
    在这里插入图片描述
    图7

    七,点击窗口左下方仿真按钮,可见lcd1602和虚拟串口的信息显示在屏。 (如下图8,9,10所示)
    在这里插入图片描述
    图8

    在这里插入图片描述
    图9
    在这里插入图片描述
    图10

    八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)
    在这里插入图片描述
    图11

    附件下载:https://download.csdn.net/download/kaillen/12406186
    附件Proteus8.9 VSM Studio Keil编译器仿真STM32F103R6系列011_lcd1602并口在已安装Proteus8.9的计算机文件夹中打开即可
    需要进一步了解,请加入QQ群:976235464

    展开全文
  • Proteus8.9 VSM Studio Keil编译器仿真RtThreadSTD3.1.3_STM32F103R6_系列011_lcd1602并口仿真代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真UCOSII_STM32F103R6_系列11_lcd1602并口仿真代码和仿真操作实验
  • Proteus8.9 VSM Studio Keil编译器仿真UCOSII_STM32F103R6_系列001__01_跑马灯仿真代码和仿真操作实验
  • AOC品牌液晶显示器源代码,稳定量产版本。C语言,keil编译器,Realtek处理IC。完整的source insight和keil工程,对液晶显示器开发着非常有意义。 C语言 , Source , 编译器 , 液晶显示器 , 源代码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,835
精华内容 734
关键字:

keil编译器