找回密码
 立即注册
楼主: test_tmp

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:565
  • 最近打卡:2025-06-17 07:50:58
已绑定手机

50

主题

1816

回帖

3134

积分

论坛元老

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

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

点评

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:565
  • 最近打卡:2025-06-17 07:50:58
已绑定手机

50

主题

1816

回帖

3134

积分

论坛元老

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-06-17 15:17:55
已绑定手机

37

主题

2221

回帖

2662

积分

荣誉版主

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

点评

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:445
  • 最近打卡:2025-06-17 12:12:21
已绑定手机

40

主题

2060

回帖

7079

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:460
  • 最近打卡:2025-06-17 15:17:55
已绑定手机

37

主题

2221

回帖

2662

积分

荣誉版主

积分
2662
发表于 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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:559
  • 最近打卡:2025-06-17 07:05:23

24

主题

524

回帖

1228

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:116
  • 最近打卡:2025-03-09 18:14:54

3

主题

88

回帖

649

积分

荣誉版主

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

使用道具 举报 送花

2

主题

13

回帖

60

积分

注册会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 16:32 , Processed in 0.139522 second(s), 101 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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