Wie richten Sie Timer9 (TIM9) auf einem STM32F405xx richtig ein, um Impulse bei steigender Flanke zu zählen? Gibt es außerhalb dieses kurzen Beispiels eine spezielle Konfiguration für den Pin zum Timer?
Folgendes habe ich bisher getan und auch das BRIEF-Gegenbeispiel aus dem hier kopierten Referenzhandbuch befolgt:
Um beispielsweise den Aufwärtszähler so zu konfigurieren, dass er als Reaktion auf eine steigende Flanke am Eingang TI2 zählt, gehen Sie wie folgt vor:
Konfigurieren Sie Kanal 2, um ansteigende Flanken am TI2-Eingang zu erkennen, indem Sie CC2S = „01“ in das TIMx_CCMR1-Register schreiben.
Konfigurieren Sie die Eingangsfilterdauer, indem Sie die IC2F[3:0]-Bits in das TIMx_CCMR1-Register schreiben (wenn kein Filter benötigt wird, belassen Sie IC2F='0000').
- Wählen Sie die Polarität der ansteigenden Flanke, indem Sie CC2P='0' und CC2NP='0' in das TIMx_CCER-Register schreiben.
- Konfigurieren Sie den Timer im externen Taktmodus 1, indem Sie SMS='111' in das TIMx_SMCR-Register schreiben.
- Wählen Sie TI2 als Trigger-Eingangsquelle, indem Sie TS='110' in das Register TIMx_SMCR schreiben.
- Aktivieren Sie den Zähler, indem Sie CEN='1' in das Register TIMx_CR1 schreiben.
Ich glaube, ich habe das oben Richtige gemacht, aber das Lesen des Registers gibt immer 0 zurück. Gibt es eine zusätzliche Einrichtung in einem anderen Register, um den mit dem Timer zu verbinden? Ich habe darüber gelesen alternate functions
, konnte aber nichts Spezifisches zu Timern und Pins finden.
Ich folge diesem locker als Codereferenz: https://www.ghielectronics.com/docs/108/register-access
Chip-Datenblatt: http://www.st.com/web/en/resource/technical/document/datasheet/DM00037051.pdf
Referenzhandbuch für die Chip-Familie: http://www.st.com/web/en/resource/technical/document/reference_manual/DM00031020.pdf
Das erste, was ich immer überprüfe, ist sicherzustellen, dass alle Uhren, die ich brauche, eingeschaltet sind. Sie müssen sicherstellen, dass die Uhren für APB2 (TIM9) und AHB1 (GPIO) eingeschaltet sind. GPIOx_MODER
Darüber hinaus sind Timer-Funktionen alternative Funktionen, sodass Sie die Bits für den entsprechenden Port und Pin, den Sie verwenden, sowie die entsprechenden GPIOx_AFRy
Bits setzen müssen .
Das Datenblatt und das Referenzhandbuch sollten alle Informationen enthalten, die Sie benötigen. Manchmal ist es einfach etwas zu tun, um das zu finden, wonach Sie suchen.
TIMx_CNT
Register wieder auf 0 zurücksetzt? Ich habe versucht, RCC_APB2RSTR
resete zu verwenden, aber ich denke, das setzt alles auf die Standardeinstellungen zurück.UG
des Bits auf 1 in TIMx_EGR
scheint den Zähler zurückzusetzen und den Rest des Setups nicht zu beeinflussen ... bis jetzt
A.Mac
GisMofx
RCC_APB2ENR
im Referenzhandbuch, aber ich kann die Adresse nicht im Datenblatt finden.GisMofx
RCC
und das Referenzhandbuch zeigt einen Offset von 0x44 fürRCC_APB2ENR
. Bit 16 ist TIM9EN. Ich setze dieses Bit und bekomme immer noch Null.A.Mac
A.Mac
GisMofx
A.Mac