本帖最后由 rengran 于 2024-1-5 10:27 编辑
STC32G手册中和STC32G头文件中寄存器名称有些不一样的地方,在此列举一下,方便参考官方手册写程序的朋友留意一下,避免编译时报错。
(1):手册中的T2,T3,T4的计数寄存器名称以及定时器T3T4控制寄存器分别为T2H、T2L,T3H、T3L,T4H、T4L及T4T3M。头文件中的名称如下图一所示
图1
从上图可知,在头文件中T2,T3,T4定时器的计数寄存器及定时器T3T4控制寄存器的地址分别定义了两种名称,即:T2H、T2L,T3H、T3L,T4H、T4L、T4T3M和TH2、TL2,TH3、TL3,TH4、TL4、T3T4M。这就说明,两种名称都可以使用,参照手册中的名称写程序是没有问题的。但是对于定时器T0和T1却不一样,因为这两个只有一种计数寄存器名称:TH0、TL0,TH1、TL1。
当你使用T2H、T2L,T3H、T3L,T4H、T4L的时候,千万不要 想当然的以为对于定时器0和定时器的计数寄存器是T0H、T0L,T1H、T1L。命名规则的不统一性在写程序编译时有时候会产生未定义的错误,此时应该对照一下手册和头文件的定义是否一致。如果只有几处还好,如果好多处都不一致,可能在参考手册和写程序时你得要每处都要对照,不知道这种情况你会不会感觉头大?  。 不过参照之前有的网友建议,手册只是用来参考,头文件可以自己定义,不一致自己可以改头文件,你也可以参照T2T3T4的头文件方法,自己再增加定义T0T1的寄存器名称T0H、T0L,T1H、T1L。这里有一个缺点就是一旦官方更新头文件之后,你得从新自己再添加一次。采取哪种方式,各位可以自行决定。
|