数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 811|回复: 18

[C51] 小白学单片机之错误的宏定义示范

[复制链接]
发表于 2025-3-20 20:37:45 | 显示全部楼层
本帖最后由 慕名而来 于 2025-3-20 20:52 编辑

端口定义我的建议最稳妥的还是:sbit  SDA=P1^5; 而#define SDA  P15不报错原因应该是在STC头文件中已经有了定义sbit  P15 = P1^5;而在Atmel的头文件AT89X51.h中则定义为 sbit P1_5 = 0x95;如果你引用的是这个头文件就又会报错了,此时应该写作#define SDA  P1_5了。
编程时还是应该了解一下引用的头文件的内容,我曾经有在程序中定义sbit  WR=P3^2;结果总是报错、提示重复定义,因为是工程中整合了好些文件找了好久无果就想起来查看头文件,果然STC的头文件有WR定义到P3.6,改成RW就没问题了,另外STC单片机有时以前编译没问题并且一直在用的程序如果再次编译报错的话就一定要看看是否头文件中某个寄存器变量名称的缩写是否更改或缺少了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-13 00:11 , Processed in 0.109201 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表