stm32为什么给有些寄存器赋值确不会影响其他位?USARTx->SR = (uint16_t)~USART_FLAG

本文介绍了STM32微控制器中寄存器的不同类型及其操作方式,解释了为何某些寄存器可以直接赋值而不会影响其他位,并列举了各种寄存器的属性和操作规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手小白可能会遇到的问题:stm32为什么给有些寄存器赋值确不会影响其他位?在stm32的库函数中可以看到有的关于位的操作不是用位与位或,而是直接赋值,但确不会影响其他位,例如:USARTx->SR = (uint16_t)~USART_FLAG,原因在于sr寄存器只能硬件置1,软件写1无效,关于这些寄存器的错作细则可以在stm32的手册中查询,

在对寄存器的描述中使用了下列缩写:
read / write (rw)
软件能读写此位。
read-only (r)
软件只能读此位。
write-only (w)
软件只能写此位,读此位将返回复位值。
read/clear (rc_w1)
软件可以读此位,也可以通过写’1’清除此位,写’0’对此位无影响。
read / clear (rc_w0)
软件可以读此位,也可以通过写’0’清除此位,写’1’对此位无影响。
read / clear by read (rc_r)
软件可以读此位;读此位将自动地清除它为’0’,写’0’对此位无影响。
read / set (rs)
软件可以读也可以设置此位,写’0’对此位无影响。
read-only write trigger (rt_w)
软件可以读此位;写’0’或’1’触发一个事件但对此位数值没有影响。
toggle (t)
软件只能通过写’1’来翻转此位,写’0’对此位无影响。
Reserved(Res.)
保留位,必须保持默认值不变

在查看寄存器时会看到这些标志,我们根据这些标志就可以知道怎么对寄存器操作了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值