ใช่มันมีประโยชน์ ผลลัพธ์จากการทดลองบน STM32F407VGT6: ทั้งสองขา AF สามารถใช้เป็น AF พร้อมกันอย่างน้อยถ้าใช้หมุดเหล่านี้เป็นอินพุต AF การทดลองคือการเรียกใช้ TIM1 บนขอบที่เพิ่มขึ้นของทริกเกอร์ภายนอก - สัญญาณ "TIM1_ETR" สัญญาณ "TIM1_ETR" สามารถจับคู่กับหมุด PE7 และ / หรือ PA12 ของแพ็คเกจ MCU ได้
การทดลอง: เตรียมใช้งานหมุดทั้งสอง PE7 และ PA12 เป็น AF "TIM1_ETR" สำหรับ 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
}
ผลลัพธ์ - 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 */
}
สิ่งนี้สามารถช่วยได้แล้วจำเป็นต้องใช้แหล่งที่แตกต่างกันสองแหล่งสำหรับตัวจับเวลาการเรียก อินพุตทั้งสองสามารถใช้ได้พร้อมกันหากเริ่มต้นตามที่แสดงในตอนต้นของโพสต์ อินพุตไม่ได้เชื่อมต่อกันฉันหมายถึงสัญญาณใน PA12 ไม่ถูกถ่ายโอนไปยัง PE7 และในทางกลับกัน (เนื่องจาก GPIO ตั้งเป็นอินพุต)
รหัสถูกสร้างขึ้นโดย "STM32CubeF4 v5.3" + "แพ็คเกจเฟิร์มแวร์ V1.24.0 / 08-February-2019"