Evet, kullanışlıdır. STM32F407VGT6 üzerindeki deney sonucu: Her iki AF pini aynı anda AF olarak kullanılabilir, en azından bu pimler AF girişleri olarak kullanılıyorsa. Deney, harici tetikleyici - "TIM1_ETR" sinyalinin yükselen kenarında TIM1'i tetiklemekti. "TIM1_ETR" sinyali MCU paketinin PE7 ve / veya PA12 pinlerine eşlenebilir.
Deney: Her iki PE7 ve PA12 pimini TIM1 için AF "TIM1_ETR" olarak başlatın:
{
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
}
Sonuç - TIM1, PE7 veya PA12 pimlerinden herhangi birinde yükselen kenar ile başlatılır.
Bu, çalışma zamanında MUX (değiştir) AF pinlerinin yolunu gösterir:
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 */
}
Bu, zamanlayıcı tetiklemesi için iki farklı kaynağa ihtiyaç duyulduğunda yardımcı olabilir, bu bizi MUX IC dışına kurtarabilir :). Gönderinin başında gösterildiği gibi başlatılırsa, her iki giriş de aynı anda kullanılabilir. Girişler birbirine bağlı değil, yani PA12'deki sinyal PE7'ye aktarılmıyor veya tersi (GPIO'lar giriş olarak ayarlandığından).
Kod, "STM32CubeF4 v5.3" + "Yazılım Paketi V1.24.0 / 08-Şubat-2019" tarafından oluşturulur.