Sí, es útil. Resultado del experimento en STM32F407VGT6: Ambos pines AF se pueden usar como AF simultáneamente, al menos si se usan estos pines como entradas AF. El experimento fue activar TIM1 en el borde ascendente del activador externo - señal "TIM1_ETR". La señal "TIM1_ETR" se puede asignar a los pines PE7 y / o PA12 del paquete MCU.
El experimento: Inicialice ambos pines PE7 y PA12 como AF "TIM1_ETR" para TIM1:
{
GPIO_InitTypeDef GPIO_InitStruct = { 0 };
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pin = GPIO_PIN_7;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); // configure PE7 as AF
GPIO_InitStruct.Pin = GPIO_PIN_12;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // configure PA12 as AF
}
El resultado: TIM1 se inicia con un flanco ascendente en cualquiera de los pines PE7 o PA12.
Esto revela el camino a los pines AF MUX (cambio) en tiempo de ejecución:
main
{
GPIO_InitTypeDef GPIO_InitStruct = { 0 };
// Deactivate PA12 input (set as regular input):
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pin = GPIO_PIN_12;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// select PE7 as a trigger source,
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pin = GPIO_PIN_7;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
// Arm the timer
arm_tim1();
/* Now timer will be started by rising edge only on PE7 */
// ... later one can select PA12 as trigger source. Deactivate PE7 (set as regular input):
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pin = GPIO_PIN_7;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
// Activate PA12
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pin = GPIO_PIN_12;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// Arm the timer
arm_tim1();
/* timer will be started by rising edge only on PA12 */
}
Esto puede ser útil, entonces se necesitan dos fuentes diferentes para la activación del temporizador, esto puede salvarnos fuera de MUX IC :). Ambas entradas se pueden usar simultáneamente, si se inicializan como se muestra al comienzo de la publicación. Las entradas no están conectadas entre sí, es decir, la señal en PA12 no se transfiere a PE7 y viceversa (porque los GPIO se configuran como entradas).
El código es generado por "STM32CubeF4 v5.3" + "Paquete de firmware V1.24.0 / 08-febrero-2019".