找回密码
 立即注册
查看: 82|回复: 3

为什么或操作不行,用与操作就可以

[复制链接]

8

主题

56

回帖

1168

积分

金牌会员

积分
1168
发表于 2026-8-9 12:34:59 | 显示全部楼层 |阅读模式
        X32KCR=0xc0;
        while(!(X32KCR & 0x01));
        CLKSEL&=0x02;
CLKSEL操作选择外部低速时钟源,用CLKSEL|=0x02屏幕显示一个预置值时钟,秒位不走字;改成CLKSEL&=0x02就正常。把这一句注释掉,上电后时钟也能正常走。寄存器上电默认都是0,两种操作方式有什么区别?
回复

使用道具 举报 送花

83

主题

8219

回帖

1万

积分

超级版主

积分
17644
发表于 2026-8-9 14:27:03 | 显示全部楼层
CLKSEL &= 0x02;  //将CLKSEL除了bit1之外的所有位清0,值只能是0x00或0x02。
CLKSEL |= 0x02;   //将CLKSEL的bit1置1,其余位不变。
回复

使用道具 举报 送花

8

主题

56

回帖

1168

积分

金牌会员

积分
1168
 楼主| 发表于 2026-8-9 17:49:39 | 显示全部楼层
AI助手里给的结果有一条说直接用 CLKSEL = 0x02; 或 CLKSEL &= 0x02; 这种整体赋值最稳妥,明确把 MCKSEL 设为 10(外部32K)。可是我试了,直接用一个=号不行,上电也是不走,只有用&=才可以正常运行。
回复

使用道具 举报 送花

8

主题

56

回帖

1168

积分

金牌会员

积分
1168
 楼主| 发表于 2026-8-10 17:04:17 | 显示全部楼层
寄存器上电默认是全0,使用内置IRC,但是用按位与操作后,结果还是全0,实际是没有切换到外部32K的呀
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-23 16:12 , Processed in 0.073120 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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