完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
使用的是 CH559L 芯片,使用的是官方提供的 CH559.h 文件 报错信息如下: 遇到的情况如下: 1、经过测试,如果有两个.c文件包含了CH559.h头文件就会出现如上信息 2、报错的对象都来自于CH559.h 3、为了把这个代码写下来,又不能在一个C文件里写下所有问题,请教要怎么解决啊 Actually i forget to mention a third way. You may set NO_XSFR_DEFINE in the Keil IDE under options>Target>c51>defines globally vor all c files. Then change your main.c (and only that one) .... #undef NO_XSFR_DEFINE #include "ch559.h" .... By the way publishing my header files maybe does not make sense because i have designed them to be compatible with Keil, SDCC and IAR. Nothing vor a beginner i guess. |
|
相关推荐
3个回答
|
|
问题是 Keil c51 不支持 xsfr 关键字。所以你必须围绕这个工作。
简单丑陋的方法: #define NO_XSFR_DEFINE #include "ch559.h" 在您的所有 c 文件中,第一个将 xsfr def 转换为外部声明的文件除外。 更好的方法是在开头更改 ch559.h,如下所示: #ifdef __CH559_H__ //已经包含在某处 #define NO_XSFR_DEFINE #万一 这样头文件本身将处理更改。 我不喜欢原始头文件的样式,因此使用我自己的。 |
|
|
|
你好,可以在CH559.h中增加NO_XSFR_DEFINE的宏定义。
|
|
|
|
其实我忘了提第三种方式。
您可以在 Keil IDE 下设置 NO_XSFR_DEFINE options>Target>c51>全局定义所有 c 文件。 然后改变你的 main.c (只有那个) …… #undef NO_XSFR_DEFINE #include "ch559.h" …… 顺便说一下,发布我的头文件可能没有意义,因为我将它们设计为与 Keil、SDCC 和 IAR 兼容。我猜对初学者来说没什么。 |
|
|
|
只有小组成员才能发言,加入小组>>
521 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2902 浏览 2 评论
2398 浏览 1 评论
866浏览 2评论
685浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
416浏览 1评论
520浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
811浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:34 , Processed in 0.998756 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号