[技术问答] MS51开发指南

[复制链接]
1257|2
 楼主| timfordlare 发表于 2025-1-11 05:36 | 显示全部楼层 |阅读模式
1.keil4 编译错误。变量编译为无效代码,不能执行;或者编译了但是不能赋值,不能运算。

解决办法:这种是Keil工程坏了,解决办法是用官方的工程重新改,把自己的.C.H文件扣过去重新编译。问题解决。
不要想着是编译器优化了,这里就是出问题了。而且如果把官方的优化等级8改了,网上说打印就会有问题。

2.好好的工程,加一行打印,多定义一个结构体,就编译错误。各种乱七八糟的错误,屏蔽这一行就没错。

解决办法:Menmory Model->Small 改为 Large

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”);


小灵通2018 发表于 2025-1-13 18:58 | 显示全部楼层
现在都是用KEIL5了。
Stahan 发表于 2025-1-19 23:40 来自手机 | 显示全部楼层
为啥会忽略掉这个啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

1675

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部