一、IAR中的重复界说问题
在自己写头文件时,要记住将常量界说在.c文件中,假如将常量界说在.h文件中,当在main.c或许其他地方包括该头文件时,会将头文件中的常量界说包括到main.c中,一起,相应的.c文件也有该常量界说句子,就会导致linker报错,有xxxx重界说(redefined)。此外,当要在main.c中运用其他.c文件中界说的量时,要记住+ extern+ +。
规范的做法:在.h文件中声明变量,在一个.c文件中界说变量,其它.c文件要用到变量只需包括.h头文件,相当于变量声明,就可以引证其它.c文件中界说的变量了。一般只在头文件中声明变量,在原文件中界说变量,即便你在头文件中运用了预编译指令 #ifndef…。 #define … #endif,也不能在头文件中界说变量。不能界说,有必要声明。
二、程序溢出问题(Error[Lp011]问题)
Error[Lp011]: secTIon placement failed: unable to allocate space for secTIons/blocks with a total esTImated minimum size of 0x2ba9 bytes in
原因:将library改为由full改为normal,一会儿空间削减许多,还有printf和scanf的格局都由full改为small,不过这儿不能用printf了。
(total uncommitted space 0x1f80)。
11 971 bytes of readonly code memory
915 bytes of readonly data memory
726 bytes of readwrite data memory
Errors: 1
CPU:STM8S103F3P,它有8K FLASH[0x008000-0x009fff],有1K RAM,实践提示的FLASH巨细为10582+809》8192
[0x008000-0x009fff]=8192,0x1f80=8064
0x3180=12672, 0x1f80=8064, 11971+915=12886
8s207就没有问题,换成103问题就溢出。
相关评论:
三、 Error[Pe169]: expected a declaraTIon
答:多了}右大括号。
四、PL2303上电后鼠标乱动的解决办法:
1,从头上电,由于咱们开发板带了一键下载电路,所以第一次上电,会引起几回(3~6次)MCU复位,很正常。 你不要每次都按电源键来完成复位,就不存在这个问题了。
2,由于你的例程,一上电,就经过串口输出数据了,而此刻CH340还在和电脑通讯,CH340在和电脑USB衔接树立的时分,收到数据,就可能导致你的串口不被辨认为串口,而被辨认为什么ball之类的设备,然后鼠标乱飞。
解决办法:
上电之前,先按住MCU的复位,然后再上电。等10秒钟左右,再开释复位。就全部OK了.