DMA,ADC bei Stm32f4

OP #2906390
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;-)
Angehängte Dateien:
OP
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
OP
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)
Gast
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
  * @brief DMA Controller
3
  */
4

5
typedef struct
6
{
7
  __IO uint32_t CR;     /*!< DMA stream x configuration register      */
8
  __IO uint32_t NDTR;   /*!< DMA stream x number of data register     */
9
  __IO uint32_t PAR;    /*!< DMA stream x peripheral address register */
10
  __IO uint32_t M0AR;   /*!< DMA stream x memory 0 address register   */
11
  __IO uint32_t M1AR;   /*!< DMA stream x memory 1 address register   */
12
  __IO uint32_t FCR;    /*!< DMA stream x FIFO control register       */
13
} DMA_Stream_TypeDef;
14

15
typedef struct
16
{
17
  __IO uint32_t LISR;   /*!< DMA low interrupt status register,      Address offset: 0x00 */
18
  __IO uint32_t HISR;   /*!< DMA high interrupt status register,     Address offset: 0x04 */
19
  __IO uint32_t LIFCR;  /*!< DMA low interrupt flag clear register,  Address offset: 0x08 */
20
  __IO uint32_t HIFCR;  /*!< DMA high interrupt flag clear register, Address offset: 0x0C */
21
} DMA_TypeDef;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.