在stm32f10中可以设置两个带GPIO_Set cmsis功能的引脚吗?

时间:2014-10-06 08:53:01

标签: stm32 cmsis

可以使用GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)将2个引脚设置为高:

GPIO_SetBis(GPIOA,PA1|PA2)  

在线stm32f10外围库(here)说:

  

此参数可以是GPIO_Pin_x的任何 组合 ,其中x可以是(0..15)

但在GPIO_SetBits函数中有:

assert_param(IS_GPIO_PIN(GPIO_Pin));  

它指的是一个简单的宏,它将每个输入作为sigle引脚进行检查:

(((PIN) == GPIO_Pin_0) || \ ... 

2 个答案:

答案 0 :(得分:0)

cource是可能的。但是你必须编写一个新的函数,它有三个参数。你可以在分析GPIO_SetBits函数时轻松编写。它将是相似的。

答案 1 :(得分:0)

如果您正在讨论STM提供的STM32标准库,那么它是不可能的,请参阅标准库所说的内容。

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  assert_param(IS_GPIO_PIN(GPIO_Pin));

  GPIOx->BSRRL = GPIO_Pin;
}

因此需要GPIOx和GPIO引脚作为参数并将GPIO_Pin分配给GPIOx-->BSRRL寄存器......

但是,您可以随时使用自己的功能为您完成任务。