1.keil4 编译错误。变量编译为无效代码,不能执行;或者编译了但是不能赋值,不能运算。 解决办法:这种是Keil工程坏了,解决办法是用官方的工程重新改,把自己的.C.H文件扣过去重新编译。问题解决。
不要想着是编译器优化了,这里就是出问题了。而且如果把官方的优化等级8改了,网上说打印就会有问题。 2.好好的工程,加一行打印,多定义一个结构体,就编译错误。各种乱七八糟的错误,屏蔽这一行就没错。解决办法:Menmory Model->Small 改为 Large
![](https://i-blog.csdnimg.cn/blog_migrate/190f88d42c931ff612c346f675a3d482.png) 3.官方给的N76E003_BSP_Keil_C51_V1.0.6头文件写得相当不科学#ifndef
#define
#endif
这种标配都没有,导致的问题是,如果在.H文件相互包含就报错,不包含在.H文件里申明自己的数据类型就报错。
要想好好写代码,自己得把官方的几个头文件都改一下。 4.Keil4 的字符BUG。我就习惯用中文提示符,可是中间就出现乱码,我还想的是波特率不对,或者是主频不对产生的误码。结果通过STM8和N76E003打印相同的语句,用16进制数看,就是有一个0xFD,没有打印。再网上查找果然就发现这是个BUG。
keil4,支持中文的时候会自动忽略 内码‘0xFD’;
当字符显示不正确的时候,需要程序里手动添加转义字符 ‘\xFD’
举例:SendString(“数\xFD”);
|