हाँ, यह उपयोगी है। STM32F407VGT6 पर प्रयोग से परिणाम: दोनों AF पिनों को AF के रूप में एक साथ इस्तेमाल किया जा सकता है, कम से कम अगर इन AF को इनपुट्स के रूप में इस्तेमाल किया जाए। प्रयोग बाहरी ट्रिगर के बढ़ते किनारे पर TIM1 को ट्रिगर करना था - सिग्नल "TIM1_ETR"। "TIM1_ETR" संकेत को MCU पैकेज के PE7 और / या PA12 में मैप किया जा सकता है।
प्रयोग: दोनों P7 PE और PA12 को AF को TIM1 के लिए AF "TIM1_ETR" के रूप में प्रारंभ करें:
{
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
}
परिणाम - TIM1 को किसी भी पीई PE7 या PA12 पर बढ़त से शुरू किया जाता है।
यह रन-टाइम में MUX (परिवर्तन) AF पिन के तरीके का खुलासा करता है:
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 */
}
यह सहायक हो सकता है फिर टाइमर ट्रिगर के लिए दो अलग-अलग स्रोतों की आवश्यकता होती है, इससे हमें MUX IC :) को बचाया जा सकता है। यदि पोस्ट की शुरुआत में दिखाया गया है, तो दोनों इनपुट का एक साथ उपयोग किया जा सकता है। इनपुट एक साथ जुड़े हुए नहीं हैं, मेरा मतलब है कि PA12 पर सिग्नल PE7 में स्थानांतरित नहीं हुआ है और इसके विपरीत (क्योंकि GPIO को इनपुट के रूप में सेट किया गया है)।
कोड "STM32CubeF4 v5.3" + "फ़र्मवेयर पैकेज V1.24.0 / 08-February-2019" द्वारा जनरेट किया गया है।