求助,为什么直接操作GPIO的BRR与BSRR寄存器不管用?

2019-07-20 22:08发布

我要通过设置GPIOB.5(在战舰V3开发板上连接到了LED的DS0)来产生高低电平从而触发一个从设备的外部中断。但是我在下面程序段中操作寄存器也无法使得PB.5变为高电平(因为LED一直亮,我认为这就表示PB.5的电平仍为低电平)
//PB5 通过此GPIO发送读取时间的信号给次STM32
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PB5
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
  GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB.5
GPIOB->BSRR=GPIO_Pin_5;


与此同时,我在UART1的中断服务函数中使用同样的操作寄存器的方法和库函数的方法,问题依旧。
//GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIOB->BRR=GPIO_Pin_5;
  delay_ms(1000);
  //GPIO_SetBits(GPIOB,GPIO_Pin_5);
  GPIOB->BSRR=GPIO_Pin_5;

0条回答

一周热门 更多>