Hallo, bin grad dabei die ganze Peripherie zu checken! Ich fing an mit den Interupts und PWM Output fÜr meine Motoren. Jetzt bin ii anch beim ADC angekommen und versteh grad nicht warum er mir nicht in das ADC und DMA Register schreibt!!!??? Hab einen Poti an PC3 und durch drehen sollten die Werte im GPIOC sich verändern... Problem ist, er schreibt mir nicht in das DMA und ADC Register und die DMA Programmzeilen nimmt er mir garnicht also error`s Programm im Anhang danke im Voraus PS: Denk das ich den DMA erst zuweisen muss was ich hab aber er checkt das nicht und ich leider auch nicht;-)
Fehlt da nicht der Aufruf von SystemInit() in main()?
Glaub nicht! Bin in der SystemInit oder und da sollte er mir schon in die Register schreiben was er beim RCC macht
Wo schaltest du denn die Clocks für die DMA an? Ich seh da grösstenteils auskommentierten Code.
Hab es nur auskommentiert weil jede Zeile in dem DMA steht als Fehler angezeit wird...Clock? Ich denk mir fehlt was des ist es ja! Im CHSEL beleg ich den Kanal aber mehr....? Hab ein Bsp. von St durchgemacht will aber nicht so progrmmieren wie die mich interessierten nur die Register in die reingeschrieben wird
Ein Fehler davon main.c(29): error: #136: struct "<unnamed>" has no field "CR" Will nur auf die Register schreiben will nicht von ST kopieren weil die in ihren Beispielen zu komplieziert programmieren(Programm für alles zu verwenden)
Sorry noch was! Hatte den DMA2 garicht enable...jetzt schon imm RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN; er erkennt aber meine dma zeilen trotzdem nicht entweder den dma oder das cr oder....
Gast
#2907126
Du benutzt das falsche Register oder das falsche Bit. Schau mal in dein stm32f4xx.h. DMA2 ist vom Typ "DMA_TypeDef". Die Bitfelder die du suchst sind in Registern mit dem Typ "DMA_Stream_TypeDef" wie z.b. DMA2_Stream0.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.