可能很多朋友对GPIO_TypeDef里的各个寄存器还不太了解,更会疑惑为何有了ODR,还要使用BSRR和BRR,下面我就我的认识,做一下简单的说明
ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。管脚对于位写1 gpio 管脚为高电平,写 0 为低电平
·缺点:会因中断而打断,关闭中断明显会延迟或丢失一事件的捕获,所以控制GPIO的状态最好还是用BSRR和BRR
BSRR 只写寄存器:既能控制管脚为高电平,也能控制管脚为低电平。
寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。简记为高低低高写 0 ,无动作
BRR 只写寄存器:只能改变管脚状态为低电平,对寄存器 管脚对于位写 1 相应管脚会为低电平。写 0 无动作


另一方面

注:GPIO_Pin为(0..15)中任意接口
有了GPIOx->BRR清除寄存器,并且与GPIOx->BSRR高16为功能相同,有人问是否BSRR的高16位是多余 的,请看下面的例子:
假如你想在一个操作中对GPIOE的位1置'1',位15置'0',则使用BSRR非常方便:
GPIOE->BSRR = 0x80000002;
低16位中的0002将位1置‘1’,高16位中的8000将位15置清零,一步就可以做到。
如果没有BSRR的高16位,则要分2次操作,结果造成位1和位15的变化不同步!
GPIOE->BSRR = 0x02;
GPIOE->BRR = 0x8000;

STM32寄存器ODR,BSRR和BRR相关推荐

  1. STM32之GPIO的CRL、CRH、IDR、ODR、BSRR、BRR、LCKR寄存器

    STM32中控制GPIO状态的一共有7个寄存器,分别是CRL.CRH.IDR.ODR.BSRR.BRR.LCKR. 调用即可看到选项

  2. STM32学习笔记V1.1GPIO寄存器的ODR、BSRR、BRR

    STM32GPIO寄存器的ODR.BSRR.BRR 端口输出数据寄存器(GPIOx_ODR)一般不用不知道为什么? 等知道之后再添加. 在输出模式下 端口位设置/清除寄存器(GPIOx_BSRR) 高 ...

  3. STM32 GPIO 配置之ODR, BSRR, BRR 详解

    用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平.管脚对于位写1 gpio ...

  4. idr寄存器、_STM32 GPIO寄存器 IDR ODR BSRR BRR

    IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器 下面内容的原文:http://m646208823.blog.163.com/blog/static/1669029532012931 ...

  5. STM32GPIO寄存器CRL、CRH、IDR、ODR、BSRR、BRR

    GPIO 寄存器描述 注意:本文以STM32F10XXX为参考,重在理解 CRL与CRH CRL与CRH分别为端口配置低与端口配置高寄存器,为32位寄存器,其中每四位控制一个I/O口 对CNFy与MO ...

  6. GPIO 配置之ODR, BSRR, BRR 详解

    STM32 GPIO 配置之ODR, BSRR, BRR 详解 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能 ...

  7. GPIO的寄存器BSRR和BRR使用摘抄汇总

    GPIO的寄存器BSRR和BRR 以写数据为例,提供的函数有  GPIO_SetBits   GPIO_ResetBits  GPIO_WriteBit   GPIO_Write  比如我在PD口的高 ...

  8. ODR, BSRR, BRR的差别

    ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平. 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制 ...

  9. STM32寄存器点亮LED(什么是寄存器、GPIO工作方式、点亮原理)

    一.什么是寄存器   STM32编程通常有两种编程方法,一种是寄存器编程:另一种是固件库编程,其中寄存器编程是基础,而固件库编程是在寄存器编程的基础上升级而来的一种易于学习和开发的方法,是学习STM3 ...

最新文章

  1. 网络工程:1.2 CISCO 路由设备登录命令
  2. Kafka集群在马蜂窝大数据平台的优化与应用扩展
  3. apache php mysql codeigniter smarty 记录方便查询
  4. 小程序 bindtouchmove 使用拖动按钮 页面跟着滑动并拖动卡顿感 问题
  5. java 注册监听_java注册监听模型
  6. 利用python进行数据分析——第十四章_数据分析案例
  7. 万豪国际数据再遭泄露影响520万客户,两名员工账户为突破口
  8. super 关键字的使用及说明
  9. Linux防火墙连续多个端口,Linux防火墙iptables配置开放某个端口
  10. 循序渐进之Spring AOP(1) - 原理
  11. mysql匿名账户登录导致的ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'错误...
  12. excel如何拟合直线(怎样用excel拟合直线)
  13. wifi发射功率各国标准_智能插座背后的两种无线协议——WiFi与ZigBee
  14. -转载-我要我们在一起故事原著
  15. 普渡大学计算机科学系可以转到计算机工程吗,2019美国普渡大学计算机专业研究生申请条件...
  16. Windows环境,agent在后台运行
  17. 记一次被QQ邮箱钓鱼邮件事件
  18. IE不能上网浏览的原因和解决办法
  19. css设置高度和宽度相同
  20. Idea 2020.1如何改变JetBrains Runtime(jbr)

热门文章

  1. 卸载流氓软件最后的奥义
  2. c#创建word 表格垂直居中
  3. 记一次godaddy上同一共享主机上部署多站
  4. 谁来教我渗透测试——黑客必须掌握的Linux基础
  5. 基于STM32的智能篮球测温记分记时系统
  6. ip address转换
  7. AFNetWorking改为同步请求
  8. 数字基建-高速公路智慧建造管控平台
  9. ORACLE ora-01502 索引失效
  10. 基于SSM的企业OA办公系统