媒体报道

当前位置:变压器 > 新闻资讯 > 媒体报道 >

bsrr和brr寄存器的应用?

发布时间:2023-07-17 12:11 作者:admin 来源:未知 点击: 标签: bsrr 引脚 寄存器 应用 brr

  

bsrr和brr寄存器的应用?

  

bsrr和brr寄存器的应用?

  引脚的高、低电平限度,有3种步骤(3个寄存器)

  永别是通过GPIO的 3个 管脚限度寄存器:

  ODR寄存器, 限度管脚的高、低电平,低16位有用,写1 高电平, 写0 低电平;

  BSRR寄存器, 限度管脚的高、低电平,32位有用,低16位写1 高电平,高16位写1 低电平;

  BRR寄存器, 限度管脚的低电平,低16位有用,写1 低电平;

  迥殊的: F1和F4系列都有 ODR和BSRR,但F4 解除了BRR。所认为了代码通用,尽量不应用BRR,归正BSRR能实行.

  ODR、BSRR的应用区别:

  你应当有过和我一律的疑义:

  ODR寄存器只用低16位,就能限度引脚的高、低电平,还能读寄存器的值,用以判别引脚电平形态;

  那么, 为什么要存正在一个BSRR! 还分高、低16位! 还不行读寄存器的值!

  写了几年的STM32代码, 平昔正在应用ODR, 险些没用过BSRR. 直到此日查找F1和F4的GPIO操作区别时, 才发觉BSRR的奇妙之处。

  (1) BSRR: 写入1生效, 写入0无作为. 同样置/复位, 比用ODR操作编译后要速几个作为, 思思以前用或/与操作, 真是多余了!

  比方: PB1要设高电平, PB11设低电平;防卫看注解

  // 通过 ODR 寄存器

  GPIOB->ODR= 0X01 ; // 代码是一行, 但背后的运转是许多步:读取->或运算->写入

  GPIOB->ODR &= ~(0X01<<11) ; // 同样是:读取->或运算->写入

  // 通过 BSRR 寄存器

  GPIOB->BSRR = 0X01 ; // 某个位直接置1,OK, 搞掂了。其它没置1的位不爆发转化

  GPIOB->BSRR = 0X01<<11; // 同上

  (2) BSRR 操作, 不消合隔绝

  这个不太领悟, 功力不到时间. 援用网友的话吧:

  “This way, there is no risk that an IRQ occurs between the read and the modify access.”

  什么趣味呢?便是你用BSRR和BRR去改观管脚形态的时间,没有被隔绝打断的危急。也就不必要紧闭隔绝。

  应用总结:

  操作管脚形态, BSRR = 速 + 浅易 !

相关文章Related Articles

  • 潍柴凸轮轴传感器妨碍案例

    2023-07-17

    凸轮轴名望传感器显现挫折,第一个发扬便是焚烧无效,煽动机难以启动。车热了很难加油,要么直接听,要么直接熄火。还会有油耗,车无力,加快加不...

  • eta2836机芯和3135机芯哪个好

    2023-07-17

    eta2836机芯好,他颁布的时期尤其晚,用的是最新的芯片工艺,因而正在机能表示上有很大晋升。 正在代价方面,他们。是差不多的,因而正在同样代价的...

  • 5g毫米波是什么谈理?

    2023-07-17

    5G毫米波工夫是5G行使中一项厉重的根本工夫,毫米波指的是一种格表电磁波,波长为1毫米到10毫米,动摇频率为30GHz-300GHz。有关于6GHz以下的频段,毫米波...

  • bsrr和brr寄存器的应用?

    2023-07-17

    引脚的高、低电平限度,有3种步骤(3个寄存器) 永别是通过GPIO的 3个 管脚限度寄存器: ODR寄存器, 限度管脚的高、低电平,低16位有用,写1 高电平, 写0 低...