久芯网

STM32F103为啥LL库清除某个标志位都是使用WRITE_REG(REG, VAL)呢?

avatar 肤浅失眠中 提问时间: 2023-06-30 14:15:11 / 未解决

大佬们,最近看LL库比较贴合寄存器编程,但是LL库清除某个标志位都是通过WRITE_REG(REG, VAL)这个来写整个寄存器,不应该通过CLEAR_BIT(REG, BIT)来实现清除某个位么,比如这个STM32F103为啥LL库清除某个标志位都是使用WRITE_REG(REG, VAL)呢? [相关图片]


如需获得 STM32F103 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

3个回答
  • avatar butterflyspring
    回答时间: 2023-06-30 14:46:19

    這個手冊上有介紹,這個寄存器寫0清零,寫1沒影響。 由該寄存器特徵決定

  • avatar 肤浅失眠中
    回答时间: 2023-06-30 15:11:02
    butterflyspring 发表于 2023-5-31 15:01
    這個手冊上有介紹,這個寄存器寫0清零,寫1沒影響。 由該寄存器特徵決定

    ...

    可是调用这个WRITE_REG(REG, VAL)这个宏后,虽然清除EOS这个bit,但是也把其他的bit给置1,按我的理解是调用CLEAR_REG()这个宏,就只清零EOS,其他bit不变

  • avatar butterflyspring
    回答时间: 2023-06-30 15:42:43
    肤浅失眠中 发表于 2023-5-31 19:30
    [md]可是调用这个`WRITE_REG(REG, VAL)`这个宏后,虽然清除EOS这个bit,但是也把其他的bit给置1,按我的 ...

    看最后一张图,厂家写明了,这类寄存器写1是没有关系的。

会员中心 微信客服
客服
回到顶部