Ya, ini berguna. Hasil dari percobaan pada STM32F407VGT6: Kedua pin AF dapat digunakan sebagai AF secara bersamaan, setidaknya jika menggunakan pin ini sebagai input AF. Percobaan ini untuk memicu TIM1 pada sisi naik dari pemicu eksternal - sinyal "TIM1_ETR". Sinyal "TIM1_ETR" dapat dipetakan ke pin PE7 dan / atau PA12 paket MCU.
Eksperimen: Inisialisasi kedua pin PE7 dan PA12 sebagai AF "TIM1_ETR" untuk 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
}
Hasilnya - TIM1 dimulai dengan naik ujung pada salah satu pin PE7 atau PA12.
Ini mengungkapkan cara untuk MUX (mengubah) pin AF dalam waktu berjalan:
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 */
}
Ini dapat membantu kemudian dua sumber berbeda diperlukan untuk memicu waktu, ini dapat menyelamatkan kita IC MUX offboard :). Kedua input dapat digunakan secara bersamaan, jika diinisialisasi seperti yang ditunjukkan di awal posting. Input tidak terhubung bersama, maksud saya sinyal pada PA12 tidak ditransfer ke PE7 dan sebaliknya (karena GPIO ditetapkan sebagai input).
Kode dihasilkan oleh "STM32CubeF4 v5.3" + "Paket Firmware V1.24.0 / 08-Februari-2019."