标准的做法:在.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 <[0x008000-0x009fff]>
原因:将library改为由full改为normal,一下子空间减少很多,还有printf和scanf的格式都由full改为small,不过这里不能用printf了。
Errors: 1
CPU:STM8S103F3P,它有8K
[0x008000-0x009fff]=8192,0x1f80=8064
0x3180=12672, 0x1f80=8064, 11971+915=12886
8s207就没有问题,换成103问题就溢出。
相关讨论:
http://www.amobbs.com/thread-5516889-1-26.html
http://www.amobbs.com/thread-5516388-1-1.html
http://www.amobbs.com/thread-5526431-1-1.html
http://www.amobbs.com/thread-4181924-1-1.html
三、
答:多了}右大括号。
四、PL2303上电后鼠标乱动的解决办法:
1,重新上电,因为我们开发板带了一键下载电路,所以第一次上电,会引起几次(3~6次)MCU复位,很正常.
2,因为你的例程,一上电,就通过串口输出数据了,而此时CH340还在和电脑通信,CH340在和电脑USB连接建立的时候,收到数据,就可能导致你的串口不被识别为串口,而被识别为什么ball之类的设备,从而鼠标乱飞.
解决办法:
上电之前,先按住MCU的复位,然后再上电.等10秒钟左右,再释放复位.就一切OK了.