keil编译时 error C141: syntax error near ')'

简单的烟雾报警程序中先是缺少了lcd1602的头文件 我从网上找了添加了后发现有错误 求大神帮我解答一下疑问 谢谢了
/********************************
FILE NAME: lcd1602.c
CHIP TYPE: AT89C51
CLOCK FREQUENCY: 12MHZ
IDE: VSMStudio
COMPILER: IAR for 8051
TIME: September 2010
********************************/

#include "reg52.h"
#include "intrins.h"

// Define P3 pins
#define DATA_BUS (P0)
#define RS (P2_bit.P2_0)
#define RW (P2_bit.P2_1)
#define E (P2_bit.P2_2)

// Define new types
typedef unsigned char uchar;
typedef unsigned int uint;

// Function Prototypes
void check_busy(void);
void write_command(uchar com);
void write_data(uchar data);

void LCD_init(void);
void string(uchar ad ,uchar *s);
void lcd_test(void);
void delay(uint);

void main(void)
{ LCD_init();
while(1)
{ string(0x80,"Have a nice day!");
string(0xC0," Proteus VSM");
delay(100);
write_command(0x01);
delay(100);

}
}

/*******************************************
LCD1602 Driver mapped as IO peripheral
*******************************************/

// Delay
void delay(uint j)
{ uchar i = 60;
for(; j>0; j--)
{ while(--i);
i = 59;
while(--i);
i = 60;
}
}

// Test the Busy bit
void check_busy(void)
{ do
{ DATA_BUS = 0xff;
E = 0;
RS = 0;
RW = 1;
E = 1;
__no_operation();
} while(DATA_BUS & 0x80);
E = 0;
}

// Write a command
void write_command(uchar com)
{ check_busy();
E = 0;
RS = 0;
RW = 0;
DATA_BUS = com;
E = 1;
__no_operation();
E = 0;
delay(1);
}

// Write Data
void write_data(uchar data)
{ check_busy();
E = 0;
RS = 1;
RW = 0;
DATA_BUS = data;
E = 1;
__no_operation();
E = 0;
delay(1);

}

// Initialize LCD controller
void LCD_init(void)
{ write_command(0x38); // 8-bits, 2 lines, 7x5 dots
write_command(0x0C); // no cursor, no blink, enable display
write_command(0x06); // auto-increment on
write_command(0x01); // clear screen
delay(1);
}

// Display a string
void string(uchar ad, uchar *s)
{ write_command(ad);
while(*s>0)
{ write_data(*s++);
delay(100);
}
}

6个回答

看下是不是括号没有匹配。

baidu_16748105
baidu_16748105 什么叫括号匹配?请问一下
4 年多之前 回复

给你个简单的笨办法查找定位错误:用宏定义ifdef 把代码分块后每次编译部分代码,看看是哪部份代码引起的错误,逐步缩小范围

具体错误行数呢,一般是定义不对,或者你的头文件不对应

baidu_16748105
baidu_16748105 void write_data(uchar data); 在这一行,
4 年多之前 回复

可能是函数或者数据类型没有在对应的头文件。
也可能你的define 部分有问题

看起来你这个就是 某个地方的 } 多了或则少了,,你可以一个函数一个函数的屏蔽,然后编译,逐渐缩小范围

void write_data(uchar data); 在这一行

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
KEIL的中断函数报错 error C141: syntax error near 'void'
![图片说明](https://img-ask.csdn.net/upload/201703/11/1489234444_155108.jpg) 求各路大神帮帮忙啊,菜鸡一个,刚进这个论坛也没什么能悬赏的...
求助,keil错误 C141: syntax error near 'unsigned'
#include<reg52.h> //#include "REG51.h" //#include "intrins.h" // Define P3 pins #define DATA_BUS (P0) #define RS (P2.0) #define RW (P2.1) #define E (P2.2) // Define new types typedef unsigned char uchar; typedef unsigned int uint; // Function Prototypes void check_busy(void); void write_command(uchar com); void write_data(uchar data); void LCD_init(void); void string(uchar ad ,uchar *s); void lcd_test(void); void delay(uint); void main(void) { LCD_init(); while(1) { string(0x80,"fire!"); string(0xC0," Proteus VSM"); delay(100); write_command(0x01); delay(100); } } /******************************************* LCD1602 Driver mapped as IO peripheral *******************************************/ // Delay void delay(uint j) { uchar i = 60; for(; j>0; j--) { while(--i); i = 59; while(--i); i = 60; } } // Test the Busy bit void check_busy(void) { do { DATA_BUS = 0xff; E = 0; RS = 0; RW = 1; E = 1; __no_operation(); } while(DATA_BUS & 0x80); E = 0; } // Write a command void write_command(uchar com) { check_busy(); E = 0; RS = 0; RW = 0; DATA_BUS = com; E = 1; __no_operation(); E = 0; delay(1); } // Write Data void write_data(uchar data) { check_busy(); E= 0; RS = 1; RW = 0; DATA_BUS = data; E = 1; __no_operation(); E= 0; delay(1); } // Initialize LCD controller void LCD_init(void) { write_command(0x38); // 8-bits, 2 lines, 7x5 dots write_command(0x0C); // no cursor, no blink, enable display write_command(0x06); // auto-increment on write_command(0x01); // clear screen delay(1); } // Display a string void string(uchar ad, uchar *s) { write_command(ad); while(*s>0) { write_data(*s++); delay(100); } }
单片机编写EEPROM时,该程序中为什么只能用<reg52.h>作头文件,而换成<regx52.h>就是错误的呢?
只有用<reg52.h>作头文件时调试正确,而换成<regx52.h>就报错很多。我知道两个头文件中位定义的格式不一样,但把^改成_之后依旧报错。 ``` #include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器 #include "i2c.h" #include "nixie.h" #include "Delay.h" #include "at24c02.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; sbit k4=P3^3; //定义按键端口 char num=0; u8 disp[4]; /******************************************************************************* * 函数名 :Keypros() * 函数功能 :按键处理函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void Keypros() { if(k1==0) { Delay(10); //消抖处理 if(k1==0) { At24c02Write(1,num); //在地址1内写入数据num } while(!k1); } if(k2==0) { Delay(10); //消抖处理 if(k2==0) { num=At24c02Read(1); //读取EEPROM地址1内的数据保存在num中 } while(!k2); } if(k3==0) { Delay(1); //消抖处理 if(k3==0) { num++; //数据加1 if(num>255)num=0; } while(!k3); } if(k4==0) { Delay(10); //消抖处理 if(k4==0) { num=0; //数据清零 } while(!k4); } } /******************************************************************************* * 函数名 :datapros() * 函数功能 :数据处理函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void datapros() { disp[0]=num/1000;//千位 disp[1]=num%1000/100;//百位 disp[2]=num%1000%100/10;//十位 disp[3]=num%1000%100%10; //个位 } /******************************************************************************* * 函数名 :DigDisplay() * 函数功能 :数码管显示函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void DigDisplay() { u8 i; for(i=0;i<4;i++) { Nixie(i,disp[3-i]); } } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { while(1) { Keypros(); //按键处理函数 datapros(); //数据处理函数 DigDisplay();//数码管显示函数 } } ``` 报错如下: F:\单片机\Keil 4\C51\Inc\reg52.h(13): error C231: 'P0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(14): error C231: 'P1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(15): error C231: 'P2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(16): error C231: 'P3': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(17): error C231: 'PSW': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(18): error C231: 'ACC': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(19): error C231: 'B': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(20): error C231: 'SP': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(21): error C231: 'DPL': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(22): error C231: 'DPH': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(23): error C231: 'PCON': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(24): error C231: 'TCON': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(25): error C231: 'TMOD': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(26): error C231: 'TL0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(27): error C231: 'TL1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(28): error C231: 'TH0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(29): error C231: 'TH1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(30): error C231: 'IE': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(31): error C231: 'IP': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(32): error C231: 'SCON': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(33): error C231: 'SBUF': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(36): error C231: 'T2CON': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(37): error C231: 'RCAP2L': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(38): error C231: 'RCAP2H': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(39): error C231: 'TL2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(40): error C231: 'TH2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(45): error C231: 'CY': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(46): error C231: 'AC': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(47): error C231: 'F0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(48): error C231: 'RS1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(49): error C231: 'RS0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(50): error C231: 'OV': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(51): error C231: 'P': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(54): error C231: 'TF1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(55): error C231: 'TR1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(56): error C231: 'TF0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(57): error C231: 'TR0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(58): error C231: 'IE1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(59): error C231: 'IT1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(60): error C231: 'IE0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(61): error C231: 'IT0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(64): error C231: 'EA': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(65): error C231: 'ET2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(66): error C231: 'ES': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(67): error C231: 'ET1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(68): error C231: 'EX1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(69): error C231: 'ET0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(70): error C231: 'EX0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(73): error C231: 'PT2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(74): error C231: 'PS': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(75): error C231: 'PT1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(76): error C231: 'PX1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(77): error C231: 'PT0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(78): error C231: 'PX0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(81): error C231: 'RD': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(82): error C231: 'WR': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(83): error C231: 'T1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(84): error C231: 'T0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(85): error C231: 'INT1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(86): error C231: 'INT0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(87): error C231: 'TXD': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(88): error C231: 'RXD': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(91): error C231: 'SM0': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(92): error C231: 'SM1': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(93): error C231: 'SM2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(94): error C231: 'REN': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(95): error C231: 'TB8': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(96): error C231: 'RB8': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(97): error C231: 'TI': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(98): error C231: 'RI': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(101): error C231: 'T2EX': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(102): error C231: 'T2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(105): error C231: 'TF2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(106): error C231: 'EXF2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(107): error C231: 'RCLK': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(108): error C231: 'TCLK': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(109): error C231: 'EXEN2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(110): error C231: 'TR2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(111): error C231: 'C_T2': redefinition F:\单片机\Keil 4\C51\Inc\reg52.h(112): error C231: 'CP_RL2': redefinition compiling i2c.c... compiling Delay10us.c... compiling Nixie.c... compiling Delay.c... compiling At24c02.c... Target not created
Keil 4编译时老是提示C51/Cx51已经停止运作
最近一个project使用Keil 4编译时一直提示:C51/CX51 Complier已经停止运作 如果将该project放在根目录下有没有问题,但我又不想每次挪到根目录下编译。 有没有哪位大侠知道怎么解决?谢谢! 問題簽章: 問題事件名稱: APPCRASH 應用程式名稱: C51.EXE 應用程式版本: 9.3.0.1 應用程式時間戳記: 4cefbb04 錯誤模組名稱: C51.EXE 錯誤模組版本: 9.3.0.1 錯誤模組時間戳記: 4cefbb04 例外狀況代碼: c0000005 例外狀況位移: 0007c290 作業系統版本: 6.1.7601.2.1.0.256.4 地區設定識別碼: 1028 其他資訊 1: 008a 其他資訊 2: 008ac3994d166d94e3cfa050a8416d20 其他資訊 3: a1a0 其他資訊 4: a1a0ebf71083c4fff037cbc8a73cc809
keil编译时的出现问题,不懂
Build target 'Target 1' compiling Text1.c... --- Error: can't execute 'C:\Keil\C51\BIN\C51.EXE' Target not created 这要怎么解决,第一次用,求解救,谢谢!
keil5打开keil4工程后编译出现问题怎么办?
keil5打开keil4工程出现这样的情况,编译后出现"no source": Error: #5: cannot open source input file "..\source\crc32.c": No such file or directory的问题?
Keil C编译问题 ,一直出错会的帮忙解决下
Build target 'Target 1' compiling exam3_1.c... linking... BL51 BANKED LINKER/LOCATER V6.22 - SN: Eval Version COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009 "STARTUP.obj", "exam3_1.obj" TO "exam3.1" RAMSIZE(256) *** FATAL ERROR L211: I/O ERROR ON OUTPUT FILE: EXCEPTION 0029H: ACCESS TO FILE DENIED FILE: exam3.1 Target not created 以上是错误信息 其实我的代码很简单,如下: #include<reg52.h> void main() { while(1) P1=0x00; } 求解!![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/18.gif)
keil编译 stc12c5a60s2的问题
1、我写了个项目程序,在small模式下编译提示内存不足。 2、然后我换成了compact模式,编译通过了,但运行不正常,准确的说是一部分正常,最初的显示界面正常,按键功能不正常。 3、我删减了一部分工程文件,用small模式编译可以通过了,运行一切正常,按键也可以。 4、我又用compact模式编译了次当前工程,按键不正常。 后两次无改动,仅仅是编译模式变了变,结果一个正常一个不正常。 使用芯片是stc12c5a60s2, 芯片信息: 8051-based microcontroller with 1T(1-clock) High-Speed Core, Dual DPTR, 36-44 I/O Lines, 2 Timers/Counters, 2 PCA Timers, Alternative build-in oscillator, Independent Baud Rate Generator, Programmable Clock-Out, 60K bytes flash ROM, 1280 bytes data RAM, On-chip EEPROM, 2 UARTs, WDT, ISP/IAP, A/D, CCP/PWM 想问问该怎么编译我的工程。
keil error #20 stm32
![图片说明](https://img-ask.csdn.net/upload/201912/27/1577419627_902411.jpg) 刚开始用stm32,还不会用,不了解stm32f10x系列芯片用管脚需要如何配置,望各路大神提点小弟一二
keil5编译有freertos操作系统的stm32的C++工程,操作系统部分编译会出错
keil5编译有freertos操作系统的stm32的C++工程,操作系统部分编译会出错,错误类型基本上都是这样的:..\FreeRTOS\Source\tasks.c(1558): error: #513: a value of type "void *" cannot be assigned to an entity of type "volatile tskTCB *" listGET_OWNER_OF_NEXT_ENTRY(pxTCB, &( pxReadyTasksLists[ usQueue ] ) );
keil vC51 报错找不到 I2C.H LCD160.H UART.h头文件
keil编译后出现 报错 C:\Users\Administrator\Desktop\test.c(2): warning C318: can't open file 'I2C.H' C:\Users\Administrator\Desktop\test.c(3): warning C318: can't open file 'LCD1602.H' C:\Users\Administrator\Desktop\test.c(4): warning C318: can't open file 'UART.h' 我的电脑里也搜索不到I2C.h 有没有大神可以吧I2C.h LCD160.H UART.H 发我一下
keil软件编译stm32固件库出错,自己改的固件库
.\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_hd_vl.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_ld.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_ld_vl.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_md.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_md_vl.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol WWDG_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_cl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol ADC3_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol DMA2_Channel4_5_IRQHandler multiply defined (by startup_stm32f10x_hd_vl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol DMA2_Channel4_5_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol FSMC_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol SDIO_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol TIM8_CC_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USBWakeUp_IRQHandler multiply defined (by startup_stm32f10x_ld.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USBWakeUp_IRQHandler multiply defined (by startup_stm32f10x_md.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USBWakeUp_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_HP_CAN1_TX_IRQHandler multiply defined (by startup_stm32f10x_ld.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_HP_CAN1_TX_IRQHandler multiply defined (by startup_stm32f10x_md.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_HP_CAN1_TX_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_LP_CAN1_RX0_IRQHandler multiply defined (by startup_stm32f10x_ld.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_LP_CAN1_RX0_IRQHandler multiply defined (by startup_stm32f10x_md.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol USB_LP_CAN1_RX0_IRQHandler multiply defined (by startup_stm32f10x_xl.o and startup_stm32f10x_hd.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol ADC1_IRQHandler multiply defined (by startup_stm32f10x_ld_vl.o and startup_stm32f10x_hd_vl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol ADC1_IRQHandler multiply defined (by startup_stm32f10x_md_vl.o and startup_stm32f10x_hd_vl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol CEC_IRQHandler multiply defined (by startup_stm32f10x_ld_vl.o and startup_stm32f10x_hd_vl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol CEC_IRQHandler multiply defined (by startup_stm32f10x_md_vl.o and startup_stm32f10x_hd_vl.o). .\Objects\leddiyi.axf: Error: L6200E: Symbol TIM1_BRK_TIM15_IRQHandler multiply defined (by startup_stm32f10x_ld_vl.o and startup_stm32f10x_hd_vl.o).都是这样的错误340个
Keil C编译时出现的问题
Build target 'Target 1' Target has no object modules Target not created 这个要怎么解决,求答,谢谢!
VS2010使用KeilC51,可以编译,无法链接,如图
LX51 LINKER/LOCATER V4.41 - SN: K1MMC-SPTJDC COPYRIGHT KEIL ELEKTRONIK GmbH 1995 - 2009 C:\Users\Administrator\Documents\Keil\dzcheng.obj TO C:\Users\Administrator\Documents\Keil\dzcheng.abs *** ERROR L210: I/O ERROR ON INPUT FILE: EXCEPTION 0021H: PATH ORFILE NOT FOUND FILE: C:\KEILC51\LIB\CX51FPS.LIB ![图片说明](https://img-ask.csdn.net/upload/201503/13/1426256299_286327.png) 我按照网上的教程用KeilC51编译,但是无法链接。教程链接如下: http://wenku.baidu.com/link?url=yUWyUXNu0MJZPaOdT2aw7tQzMkNHUS83a7EdyQ2vy-MXXk2UN-AVgPgFaTBml4zQWXMeFsgmmznqUnEqXCncfzyXooJD1XS4-TiJ02tNGcS 十分感激!
为什么老显示key_value 未定义 ,data数组也有问题??
/*************************************************** 本程序是要用单片机做一个计算器 *************************************************/ #include<reg51.h> #include<math.h> #define GPIO_key P2 #define GPIO_zu P0//位选 #define GPIO_led P1//段选 unsigned char zu[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char LED_data[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; unsigned char LED_num[9]; unsigned char flag; void display_num();//用来显示每次按键之后的key_value void dispay_r(unsigned int r);//用来显示结果 void delayms(unsigned int i);//延时函数 char keypress();//扫描矩阵键盘 int jisuan(); unsigned char data[17];//全局存储数组 存储键值 //MAIN.C(23): error C141: syntax error near '[' unsigned char p;//用于 计算函数 和 出栈显示 的下标 //uchar p_stack;//用于显示数字的下标 void main() { int i; int res; p=-1; unsigned char key_value; //MAIN.C(32): error C141: syntax error near 'unsigned' for(i=0;i<10;i++) { LED_num[i]=LED_data[i]; } flag=0;//标记是否有键值 while(1) { loop: key_value=keypress();//修改flag,输出键值 //MAIN.C(32): error C202: 'key_value': undefined identifier if(flag==1)//当flag=1时,表示有键值输入 { if (p<=17)//入队操作 { p++; data[p]=key_value; } if (key_value>-1&&key_value<10) { display_num();// display each num; } else if (key_value=='=') { res=jisuan(); dispay_r(res); } else goto loop; //判断key_value } flag=0; } } int jisuan() { unsigned int num[2]={0,0}; unsigned char fuhao; int i=0; for (;p>-1;p--) { if (data[p]>-1&&data[p]<10) //MAIN.C(71): error C141: syntax error near 'data' { num[i]=data[p]+num[i]*10; } else { i++; fuhao=data[p]; } } switch(fuhao) { case '+':num[1]=num[0]+num[1];break; case '-':num[1]=num[0]-num[1];break; case '*':num[1]=num[0]*num[1];break; case '/':num[1]=num[0]/num[1];break; } return num[1]; } char keypress() { unsigned char temp,key; GPIO_key=0xfe; temp=temp&0xf0; if (temp!=0xf0) { delayms(10); temp=GPIO_key; if (temp!=0xf0) { flag=1; temp=GPIO_key; switch(temp) { case 0xee:key=0;break; case 0xde:key=1;break; case 0xbe:key=2;break; case 0x7e:key=3;break; } while(temp!=0xf0) { temp=GPIO_key; temp=temp&0xf0; } } } GPIO_key=0xfd; temp=temp&0xf0; if (temp!=0xf0) { delayms(10); temp=GPIO_key; if (temp!=0xf0) { flag=1; temp=GPIO_key; switch(temp) { case 0xed:key=4;break; case 0xdd:key=5;break; case 0xbd:key=6;break; case 0x7d:key=7;break; } while(temp!=0xf0) { temp=GPIO_key; temp=temp&0xf0; } } } GPIO_key=0xfb; temp=temp&0xf0; if (temp!=0xf0) { delayms(10); temp=GPIO_key; if (temp!=0xf0) { flag=1; temp=GPIO_key; switch(temp) { case 0xeb:key=8;break; case 0xdb:key=9;break; case 0xbb:key='+';break; case 0x7b:key='-';break; } while(temp!=0xf0) { temp=GPIO_key; temp=temp&0xf0; } } } GPIO_key=0xf7; temp=temp&0xf0; if (temp!=0xf0) { delayms(10); temp=GPIO_key; if (temp!=0xf0) { flag=1; temp=GPIO_key; switch(temp) { case 0xe7:key='*';break; case 0xd7:key='/';break; case 0xb7:key='=';break; case 0x77:key='.';break; } while(temp!=0xf0) { temp=GPIO_key; temp=temp&0xf0; } } } return key; } void display_num() { int zhi=p; int j=0; while(j>-1) { if (data[zhi]>-1&&data[zhi]<10) { GPIO_zu=zu[j]; GPIO_led=LED_num[data[zhi]]; zhi--; j++; } } } void dispay_r(unsigned int r) { unsigned char temp_r[8]; int i; for(i=0;i<8;i++) { temp_r[i]=(int)r%(int)pow(10,i+1); } for (i=0;i<8;i++) { GPIO_zu=zu[i]; GPIO_led=LED_num[temp_r[i]]; } } void delayms(unsigned int i) { unsigned char c; for(;i>0;i--) { for(c=110;c>0;c--); } }
keil5安装出现这样问题?请问怎么解决?
![图片说明](https://img-ask.csdn.net/upload/202001/04/1578115967_648098.png)
keil的编译器wav6000能用吗?
keil的编译器wav6000能用吗?,最近在仿真,有一些问题,经常无法编译。
KeilC51关于vsprintf编译错误的问题
我在编译一个工程时,出现编译错误,我写了一个实现打印输出的函数如下: void UART_Printf(char *fmt,...) { char string[100]; va_list ap; va_start(ap, fmt); vsprintf(string, fmt, ap); UART_SendString(string); va_end(ap); } 编译链接时出现错误,信息如下: linking... *** ERROR L103: EXTERNAL ATTRIBUT DO NOT MATCH PUBLIC SYMBOL: ?_VSPRINTF?BYTE MODULE: C:\Keil\C51\LIB\C51S.LIB (VSPRINTF) *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL SYMBOL: ?_VSPRINTF?BYTE MODULE: ..\Object\Uart.obj (UART) ADDRESS: 2142H *** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL 我的变量存储空间设置如下: ![图片说明](https://img-ask.csdn.net/upload/201808/03/1533279081_799450.jpg) 在网上查了资料,我感觉是跟变量存储空间位置有关,但是不知道具体出错在哪儿,以及怎么解决。有哪位大侠知道怎么解决的,指导一下,感谢!
KEIL V9 预编译出错,各位大神帮忙指点
代码如下: #ifndef size_t #if sizeof((char*)0 - (char*)0) == sizeof(int) #define size_t int #else #define size_t long #endif #endif error C308: invalid integer const expression 指 #if sizeof((char*)0 - (char*)0) == sizeof(int) 表达式错误
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。 但是,最近好多人问我学习路线,而且很多大一大二的,说自己很迷茫,看到我那篇 普普通通,我的三年大学 之后很受激励,觉得自己也能行,(是的,别太浪,你一定能行)希望我能给他个学习路线,说
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问