Oui, c'est utile. Résultat de l'expérience sur STM32F407VGT6: Les deux broches AF peuvent être utilisées simultanément comme AF, au moins si vous utilisez ces broches comme entrées AF. L'expérience devait déclencher TIM1 sur le front montant du déclencheur externe - signal "TIM1_ETR". Le signal "TIM1_ETR" peut être mappé aux broches PE7 et / ou PA12 du boîtier MCU.
L'expérience: initialiser les deux broches PE7 et PA12 comme AF "TIM1_ETR" pour 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
}
Le résultat - TIM1 est démarré par front montant sur l'une des broches PE7 ou PA12.
Cela révèle le chemin vers les broches AF MUX (changement) en cours d'exécution:
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 */
}
Cela peut être utile, puis deux sources différentes sont nécessaires pour le déclenchement de la minuterie, cela peut nous sauver hors du MUX IC :). Les deux entrées peuvent être utilisées simultanément, si elles sont initialisées comme indiqué au début de l'article. Les entrées ne sont pas connectées ensemble, je veux dire que le signal sur PA12 n'est pas transféré vers PE7 et vice versa (car les GPIO sont définis comme entrées).
Le code est généré par "STM32CubeF4 v5.3" + "Package de micrologiciel V1.24.0 / 08-février-2019".