• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32单片机关于GPIO寄存器的疑惑

a4c022bac1fe9697 2018-07-16 浏览量:673
在学习GPIO操作时候,发现32中有 ODR寄存器控制GPIO口输出,但是又发现BSRR寄存器也可以控制输出,而且库函数中用的就是BSRR!问:这个BSRR寄存器存在的意义何在。既然ODR可以实现的功能,为什么会再加一个寄存器来实现相同的功能!
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • BSRR寄存器在后面也要对ODR寄存器发送指令来修改的,最终还是要靠ODR寄存器来控制GPIO输出。为什么用BSRR?因为BSRR可以对每一位GPIO进行单独的操作,而ODR则必须以16位为单位来操作GPIO,也就是必须一次传16位的数据进去。
    • 发布于 2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 防止误操作.ODR可以高低BSRR只能高.
    • 发布于2018-07-16
    • 举报
    • 评论 0
    • 0
    • 0

  • BSRR是把io输出高电平,ODR可以设置低和高两种,用BSRR比较安全

    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是用BSRR寄存器去操作IO,官方的库也是使用这个寄存器
    • 发布于2018-07-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接用BSRR寄存器比较方便,直接输出高电平
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • BSRR只是将IO作为高电平输出的,ODR可高可低,一般用于翻转
    • 发布于2018-07-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32单片机关于GPIO寄存器的疑惑