stm32中GPIOB->BSRR这句话是啥意思?是否跟GPIOB.BSRR意思一样?一定采纳

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32中GPIOB->BSRR这句话是啥意思?是否跟GPIOB.BSRR意思一样?一定采纳相关的知识,希望对你有一定的参考价值。

GPIOB->BSRR这句话中的GPIOB其实是一个结构体类型的指针,可以看一下固件手册中关于GPIO中GPIO寄存器结构的描述。GPIO这个指针指向的数据类型是机构体,而这个结构体包含了BSRR这个寄存器。所以GPIOB->BSRR可以理解为对BSRR这个寄存器的操作。比如楼下的回答GPIOB->BSRR = 0x01,其实就是对BSRR这个寄存器赋值。
GPIOB.BSR这个写法是不对的,因为GPIOB是指针,不是结构体类型。可以这样写GPIO_TypeDef.BSR
参考技术A GPIOB->BSRR = 0x01就是把GPIOB port 0升为高电平
GPIOB->BRR = 0x01就是把GPIOB port 0降为低电平
GPIOB->BSRR = 0x02就是把GPIOB port 1升为高电平
GPIOB->BRR = 0x02就是把GPIOB port 1降为低电平
GPIOB->BSRR = 0x04就是把GPIOB port 2升为高电平
GPIOB->BRR = 0x04就是把GPIOB port 2降为低电平
GPIOB->BSRR = 0x08就是把GPIOB port 3升为高电平
GPIOB->BRR = 0x08就是把GPIOB port 3降为低电平本回答被提问者和网友采纳
参考技术B GPIOB->BSRR把GPIOB中的某个pin置高 参考技术C GPIOB->BSRR把GPIOB中的某个pin置高 参考技术D

GPIOB->BSRR是指向结构体结构体,每个元素有自己的内存

GPIOB.BSRR是联合体,是共用内存

意思你可以看库文件

STM32F103引脚输入输出冲突?模拟IIC与网络模块在一组IO上无法同时使用!

//IO方向设置
#define SDA_IN() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=0x80000000;
#define SDA_OUT() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=0x30000000;

//IO操作函数
#define IIC_SCL PBout(6) //SCL
#define IIC_SDA PBout(7) //SDA
#define READ_SDA PBin(7) //输入SDA

。。。。。。。。。。。。

void SPI1_Init(void)

RCC->APB2ENR|=1<<3; //PORTB时钟使能
RCC->APB1ENR|=1<<14; //SPI2时钟使能

//这里只针对SPI口初始化
GPIOB->CRH&=0X000FFFFF;
GPIOB->CRH|=0XBBB00000;//PB13,14,15复用
GPIOB->ODR|=0X7<<5; //PB13,14,15上拉

SPI2->CR1|=0<<10;//全双工模式
SPI2->CR1|=1<<9; //软件nss管理
SPI2->CR1|=1<<8;

SPI2->CR1|=1<<2; //SPI主机
SPI2->CR1|=0<<11;//8bit数据格式
SPI2->CR1|=1<<1; //空闲模式下SCK为1 CPOL=1
SPI2->CR1|=1<<0; //数据采样从第二个时间边沿开始,CPHA=1
SPI2->CR1|=7<<3; //Fsck=Fpclk2/256
SPI2->CR1|=0<<7; //MSBfirst
SPI2->CR1|=1<<6; //SPI设备使能
SPI1_ReadWriteByte(0xff);//启动传输


上面是代码部分,如果将第一行的IO换成PA网络模块就能正常工作。我的硬件已经做好了不能更改!请问是什么问题引起的冲突

参考技术A 经济环境好好干

以上是关于stm32中GPIOB->BSRR这句话是啥意思?是否跟GPIOB.BSRR意思一样?一定采纳的主要内容,如果未能解决你的问题,请参考以下文章

STM32中GPIOD->BSRR = addr(0x0000ffff<<16); <<16是啥意思

请教STM32知识点:GPIOA->BSRR 与GPIOA->BRR两个管脚寄存器

关于STM32 GPIO->BSRR GPIO->BRR的问题

关于STM32的简单问题,GPIOA->BSRR=0x080004;这样写对吗?

STM32的GPIO定义的时候一般都选定了端口GPIOA,GPIOB这种,没有定义端口的是啥情况

stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读\更改的独立访问;