【总结】单片机重点知识总结记录之BRR与BSRR寄存器讲解(三)

简介: BRR与BSRR寄存器讲解

三.关于STM32F4找不到BRR或BSRR的问题

在移植LCD驱动时发现了个问题:编译器找不到BSRR和BRR寄存器,如下:

#define SCL_H GPIOB->BSRR = GPIO_Pin_6

#define SCL_L GPIOB->BRR  = GPIO_Pin_6

1.库函数替代

这里要注意的是F4系列已经没有这BRR寄存器了,但其实对这两个寄存器的操作就相当于拉低或拉高相应GPIO的电平,我们完全可以以库函数来代替:


void GPIO_SetBits(GPIO_Typedef* GPIOx, uint16_t GPIO_Pin)

void GPIO_ResetBits(GPIO_Typedef* GPIOx, uint16_t GPIO_Pin)  

2.寄存器

或者我们还可以用BSRRH和BSRRL代替,如下:


#define SCL_H GPIOB->BSRRH = GPIO_Pin_6

#define SCL_L GPIOB->BSRRL = GPIO_Pin_6

原因如下:  


BSRR 和 BRR 都是 STM32 系列 MCU 中 GPIO 的寄存器。 BSRR 称为端口位设置/清楚寄存器,BRR称为端口位清除寄存器。


BSRR 低 16 位用于设置 GPIO 口对应位输出高电平,高 16 位用于设置 GPIO 口对应位输出低电平。


BRR 低 16 位用于设置 GPIO 口对应位输出低电平。高 16 位为保留地址,读写无效。


我们详细观察库函数:


void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

{

 /* Check the parameters */

 assert_param(IS_GPIO_PIN(GPIO_Pin));

 assert_param(IS_GPIO_PIN_ACTION(PinState));

 if(PinState != GPIO_PIN_RESET)

 {

   GPIOx->BSRR = GPIO_Pin;

 }

 else

 {

   GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;

 }

}

3.寄存器偏移

于是我们又可以总结出一种方法


#define SCL_H GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;

#define SCL_L GPIOx->BSRR = GPIO_Pin;

相关文章
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
350 1
复习单片机:串口通信(内含:1.代码部分+2.串口内部结构+3.串口控制寄存器 SCON+4.电源控制寄存器 PCON+5. 串口的使用方法+6.硬件设计+7.实验现象)
|
C语言 芯片
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
258 0
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
|
C语言
STM32单片机修改寄存器的位操作方法(全网最全)
使用 C语言对寄存器赋值时,我们常常要求只修改该寄存器的某几位的值,且其它的寄存器位不变,这个时候我们就需要用到 C 语言的位操作方法了。
1014 0
|
5月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
48 1
|
5月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
74 1
|
5月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
124 0
|
5月前
|
物联网
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
76 0
|
15天前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
25 5
|
3月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
5月前
|
传感器 人工智能 物联网
单片机:编程实践与应用探索
单片机:编程实践与应用探索
62 4