stm32为什么给有些寄存器赋值确不会影响其他位?USARTx->SR = (uint16_t)~USART_FLAG
来源:互联网 发布:青岛企业seo外包服务 编辑:程序博客网 时间:2024/04/30 09:13
新手小白可能会遇到的问题: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.)
保留位,必须保持默认值不变
在查看寄存器时会看到这些标志,我们根据这些标志就可以知道怎么对寄存器操作了~
0 0
- stm32为什么给有些寄存器赋值确不会影响其他位?USARTx->SR = (uint16_t)~USART_FLAG
- 单片机上电复位以后个寄存器不是默认值为0吗?那为什么要用到IO口(如P0、P1)时还要专门给它赋值为零啊
- 为什么有些程序在打开方式中不会显示 解决。
- 为什么苹果的利润不会受HTML5影响?
- 为什么苹果的利润不会受HTML5影响?
- stm32寄存器
- STM32之SPI_CR1寄存器的SSM, SSI位理解
- kvc为什么可以给readOnly赋值
- stm32官方库数据格式定义 uint16_t
- stm32 奇怪的位赋值问题 出错了
- 给UIView 设置透明度,不影响其他sub views
- 给UIView 设置透明度,不影响其他sub views
- sql查询,根据条件将列值赋值给其他列
- 为什么ajax中加载的数据无法赋值给变量
- 简述为什么不能用父类给子类赋值
- 1-9随机赋值给一个9位数组
- 为什么人总是那么现实?有些东西真不会做,可真没有人愿意帮忙。发了也无人问津呢?
- 至于知道为什么flex录音的时候,有些客户的电脑不会弹出adobe flash player 设置对话框了
- Ceph源码编译
- C#停车位管理系统
- Kubunetes学习总结之基本原理
- mysql 查询使用*和具体字段的问题
- HDU 1231 最大连续子序列( DP做法 + 水题做法)
- stm32为什么给有些寄存器赋值确不会影响其他位?USARTx->SR = (uint16_t)~USART_FLAG
- SQL SERVER简单的增,删,查,改 语句 多表关联查询 (去掉关键列查询)
- 局域网从另一台电脑copy文件(Linux系统下)
- 浅谈 JavaScript DDoS 攻击原理与防御
- mysql 分组总和求最大值 的两种方式
- fgets要注意的问题
- Gradle分渠道/包名/应用名打包Apk
- 只会编程的程序员没有前途
- spring MVC中传递的参数对象中包含list的情况