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

STM32下GBIO口下的引脚既要输入中断又要输出,初始化怎么弄

qiuqiu 2019-12-06 浏览量:2554
急急急,小弟现在遇见一个困惑,   
/*Configure GPIO pins : PAPin PAPin */
  GPIO_InitStruct.Pin = LOCK_DET_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /*Configure GPIO pin : PtPin */
  GPIO_InitStruct.Pin = SB_Energy_IN_Pin|TY_Energy_IN_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

   /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI0_IRQn, 6, 0);
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
  HAL_NVIC_SetPriority(EXTI1_IRQn, 7, 0);
  HAL_NVIC_EnableIRQ(EXTI1_IRQn);

我GBIO下的三个引脚有2个需要用输入中断,有一个要输出,这样初始化,我输出就用不了了,这是怎么回事呢,有哪位大哥指导嘛
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:6
  • 第三行改成output,你用的是input当然不能输出

  • 输入加中断的脚是不能输出的,因为无法分时复用

  • 只能有一种模块,你这个功能实现不了的,芯片不支持

  • 可以修改成输出模式,但是可以读取IO的电平状态,只是不可以使用中断了,这样只能是定时读取IO电平了

  • 这个非常简单,在你的中断函数完成后设置输出模式,然后完成后再设置成输入

  • 不能实现这样的操作,因为IO在一个时刻只能作为输入或者输出,你这种情况要使用两个IO

相关问题

问题达人换一批

STM32下GBIO口下的引脚既要输入中断又要输出,初始化怎么弄