پیکربندی منبع کلاک تایمر general purpose می تواند برای افراد تازه کار یک کابوس باشد . CubeMX توانسته این فرآیند را ساده کند.
برای پیکربندی تایمر در حالت External Clock Mode 2 کافی است ETR2 را به عنوان منبع کلاک از نمای Pinout انتخاب کنید:

پس از انتخاب منبع کلاک، می توان فیلتر کلاک خارجی، polarity و prescaler را از کادر dialog پیکربندی تایمر تنظیم کرد.

برای پیکربندی تایمر در حالت External Clock Mode 1 ، باید این حالت را از ورودی Slave انتخاب کنیم و سپس منبع تریگر (که در این مورد منبع کلاک ، برای تایمر است) را انتخاب کنیم.

حالات همگام سازی Master/Slave
هنگامی که یک تایمر در حالت master کار می کند، می تواند تایمر دیگری را که در حالت Slave پیکربندی شده است از طریق یک خط خروجی اختصاصی، به نام خروجی Trigger (TRGO)، متصل به خطوط اختصاصی داخلی به نام ITR0، ITR1، ITR2 و ITR3 تغذیه (کلاک) کند. تایمر master هم می تواند به عنوان منبع کلاک عمل کند (به عنوان یک prescaler مرتبه اول) یا تایمر slave را تحریک trigger کند.
این خطوط Trigger داخلی (ITR) (ITR0، ITR1، ITR2 و ITR3) دقیقاً داخل تراشه هستند و هر خط بین دو تایمر مشخص ، متصل می شود. به عنوان مثال، در میکروکنترلر STM32F030، خط TIM1 TRGO به خط ITR0 تایمر TIM2 متصل است، همانطور که در شکل زیر نشان داده شده است.

یک تایمر slave میتواند بهطور همزمان بهعنوان master برای تایمر دیگر نیز عمل کند و شبکه پیچیده ای از تایمر ها را به وجود آورد. به عنوان مثال، شکل زیر نشان می دهد که چگونه تایمرها را می توان به صورت آبشاری متصل کرد:

اما شکل زیر نشان می دهد که چگونه تایمرها می توانند ساختارهای سلسله مراتبی را با استفاده از ترکیب حالت های master/slave تشکیل دهند. توجه داشته باشید که TIM1، TIM2 و TIM3 به صورت داخلی از طریق همان خط ITR0 به هم متصل هستند. این امر باعث می شود تا چندین تایمر در یک رویداد مشابه (reset, enable, update و غیره) همگام سازی شوند.
برای پیکربندی تایمر در حالت master ، از تابع HAL_TIMEx_MasterConfigSynchronization() و نمونهای از ساختار TIM_MasterConfigTypeDef استفاده میکنیم که به شکل زیر تعریف میشود.
typedef struct {
uint32_t MasterOutputTrigger; /* Trigger output (TRGO) selection */
uint32_t MasterSlaveMode; /* Master/slave mode selection */
} TIM_MasterConfigTypeDef;
- MasterOutputTrigger: رفتار خروجی TRGO را مشخص می کند و می تواند مقادیری از جدول زیر را در بر گیرد.

- MasterSlaveMode: برای فعال/غیرفعال کردن حالت master/slave یک تایمر استفاده می شود. می تواند مقادیر TIM_MASTERSLAVEMODE_ENABLE یا TIM_MASTERSLAVEMODE_DISABLE را در بر گیرد.
در ادامه نحوه پیکربندی TIM1 و TIM3 را در حالت آبشاری با تنظیم TIM1 به عنوان master برای تایمر TIM3 نشان میدهیم. TIM1 به عنوان منبع کلاک برای TIM3 از طریق خط ITR0 استفاده می شود. علاوه بر این، TIM1 به گونه ای پیکربندی شده است که روی یک رویداد خارجی در خط TI1FP1 شروع به شمارش می کند، که در Nucleo-F030 مربوط به پین PA8 است: زمانی که پایه PA8 بالا می رود، TIM1 شروع به شمارش می کند و سپس تایمر TIM3 را از طریق خط ITR0. تغذیه (کلاک) می کند.