找回密码
 立即注册
查看: 308|回复: 2

注意:STC32G头文件和STC32G手册寄存器名称有些不一样的(汇总贴),使用手册时请留意

[复制链接]
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 170 天

    [LV.7]常住居民III

    43

    主题

    369

    回帖

    1111

    积分

    金牌会员

    静坐常思己过,闲谈莫论人非

    积分
    1111
    发表于 2024-1-5 09:48:49 | 显示全部楼层 |阅读模式
    本帖最后由 rengran 于 2024-1-5 10:27 编辑
    STC32G手册中和STC32G头文件中寄存器名称有些不一样的地方,在此列举一下,方便参考官方手册写程序的朋友留意一下,避免编译时报错。

    • 前几天单独发了一个帖子关于定时器相关寄存器TMOD、TUXR、T4T3M中的定时和计数选择位的T0_C/T,T1_C/T,T2_C/T,T3_C/T,T4_C/T在头文件中分别为T0_CT,T1_CT,T2_CT,T3_CT,T4_C/T,在此不再列举,具体参考这个帖子的链接:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5958
    • 定时器计数寄存器中的TnH,TnL
           (1):手册中的T2,T3,T4的计数寄存器名称以及定时器T3T4控制寄存器分别为T2H、T2L,T3H、T3L,T4H、T4L及T4T3M。头文件中的名称如下图一所示
                          Snipaste_2024-01-05_09-53-07.png

                图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。这里有一个缺点就是一旦官方更新头文件之后,你得从新自己再添加一次。采取哪种方式,各位可以自行决定。


    处事要代人所想,读书需切己用功
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 170 天

    [LV.7]常住居民III

    43

    主题

    369

    回帖

    1111

    积分

    金牌会员

    静坐常思己过,闲谈莫论人非

    积分
    1111
     楼主| 发表于 2024-1-6 11:07:25 | 显示全部楼层
    3、定时器的运行控制位(不是手册和头文件名称不一样,而是5个定时器之间命名规则有些不同,使用时别想当然,严谨参考手册或者头文件)

         定时器T0和T1的运行控制位的名称分别为:TR0、TR1
         定时器T2、T3、T4的运行控制位的名称分别为:T2R、T3R、T4R,不要不看手册或者头文件,想当然的按照T0和T1的规律写成TR2、TR3、TR4。



    处事要代人所想,读书需切己用功
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 170 天

    [LV.7]常住居民III

    43

    主题

    369

    回帖

    1111

    积分

    金牌会员

    静坐常思己过,闲谈莫论人非

    积分
    1111
     楼主| 发表于 2024-1-8 10:11:45 | 显示全部楼层

    定时器的中断溢出标志和外部中断请求标志

    本帖最后由 rengran 于 2024-1-8 10:53 编辑
    4、定时器的中断溢出标志
        定时器T0、T1的中断溢出标志分别为:TF0、TF1。
        定时器T2、T3、T4的中断溢出标志分别为:T2IF、T3IF、T4IF。不要以为是按照T0和T1的命名规律进行命名的而误以为是TF2、TF3、TF4,一定要看手册或者头文件!!!
    5、外部中断请求标志
        外部中断0、外部中断1中断请求标志分别为:IE0、IE1。
        外部中断2、外部中断3、外部中断4中断请求标志分别为:INT2IF、INT3IF、INT4IF。不要以为是按照外部中断0和外部中断1的命名规律进行命名的而误以为是IE2、IE3、IE4,一定要看手册或者头文件!!!
    处事要代人所想,读书需切己用功
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-21 14:51 , Processed in 0.057376 second(s), 40 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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