找回密码
 立即注册
楼主: test***

提交一个USB和timer3共存的bug | 数据手册中有注意事项

[复制链接]
  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 338 天

    [LV.8]以坛为家I

    31

    主题

    1253

    回帖

    3081

    积分

    论坛元老

    积分
    3081
    发表于 2024-3-26 22:36:18 | 显示全部楼层
    DebugLab 发表于 2024-3-26 22:12
    操作IE2后再EUSB=1,EUSB也会被清零一下,可能会导致未知的错误,应该
    unsigned char a;
    a=IE2;//先读出

    stc32的这些寄存器可以位寻址,可以直接用位变量操作,这样就不影响其它位了

    点评

    对对对  发表于 2024-3-28 12:09
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 338 天

    [LV.8]以坛为家I

    31

    主题

    1253

    回帖

    3081

    积分

    论坛元老

    积分
    3081
    发表于 2024-3-26 22:38:13 | 显示全部楼层
    test_tmp 发表于 2024-3-26 21:57
    研究了一下,确实是EUSB的问题,新版手册里面,提到这个问题了,只要操作了IE2,就需要重新置EUSB=1 ...

    你可以试试相应位直接置1,这样不影响其它位
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.8]以坛为家I

    27

    主题

    1346

    回帖

    1750

    积分

    荣誉版主

    热心市民

    积分
    1750
    发表于 2024-3-26 23:14:23 | 显示全部楼层
    还没注意到这个问题,学习了,寄存器不可读估计是个bug,后期应该能修复吧

    点评

    看着手册上说明了这个寄存器不可读的话 那就不是bug了,,顶多算自己用法不对  发表于 2024-3-27 09:14
    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:54
  • 签到天数: 277 天

    [LV.8]以坛为家I

    30

    主题

    1754

    回帖

    5738

    积分

    论坛元老

    积分
    5738
    发表于 2024-3-27 09:27:08 | 显示全部楼层
    开天斧/屠龙刀例程包初始化代码里面基本上都有这么一条指令:
    1.     IE2 |= 0x80;   //IE2相关的中断位操作使能后,需要重新设置EUSB
    复制代码
    1.     EUSB = 1;   //IE2相关的中断位操作使能后,需要重新设置EUSB
    复制代码
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.8]以坛为家I

    27

    主题

    1346

    回帖

    1750

    积分

    荣誉版主

    热心市民

    积分
    1750
    发表于 2024-3-27 09:29:40 | 显示全部楼层
    本帖最后由 晓飛飛 于 2024-3-27 09:34 编辑
    乘风飞扬 发表于 2024-3-27 09:27
    开天斧/屠龙刀例程包初始化代码里面基本上都有这么一条指令:

    STC8HxxU的手册里面描述的是“IE2相关的中断位操作使能后,需要重新设置EUSB”
    STC32G/F的手册里面附录N.1有特别描述,说IE2的bit7(EUSB)位为只写寄存器,不可读取。
    在手册正篇关于寄存器的介绍里面没有详细描述,只有红字提示,我猜测这只是个暂时性的bug,估计后期会更新处理。
    11.png

    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.8]以坛为家I

    22

    主题

    433

    回帖

    1710

    积分

    荣誉版主

    积分
    1710
    发表于 2024-3-27 10:31:09 | 显示全部楼层
    能有解决方案就不是BUG。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 111 天

    [LV.6]常住居民II

    3

    主题

    84

    回帖

    694

    积分

    荣誉版主

    积分
    694
    发表于 2024-3-29 16:47:55 | 显示全部楼层
    应该定义一个 变量 当作IE2寄存器的影子寄存器(虚拟的),IE2当作只写寄存器,程序尽量不要去执行“读”操作,每次写影子寄存器(变量),顺带更新写一次IE2, 读取的话读取影子寄存器(变量)就可以完美解决这个问题
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    12

    回帖

    43

    积分

    新手上路

    积分
    43
     楼主| 发表于 2024-4-2 17:33:54 | 显示全部楼层
    谢谢大家的建议,学习了
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-1 07:50 , Processed in 0.081344 second(s), 80 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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