Gast
#4855846
Hallo, ich möchte gerne den I2C mit dem DMA eines STM32F303 betreiben. Hierzu ist mir was im Reference Manual aufgefallen, was nicht ganz verstehe. Und zwar kann man im DMA direkte Registeradressen einstellen, auf die das DMA-Modul zugreift (z.B. die Datenregister des I2C-Moduls). Zusätzlich können beim I2C-Modul im Register CR1 die Bits RXDMAEN bzw. TXDMAEN gesetzt werden. Was bewirken diese beiden Bits nun genau? Müssen diese gesetzt werden, wenn ich das ganze mit DMA betreibt? Im Reference Manual steht hierzu folgendes (Seite 870): DMA (Direct Memory Access) can be enabled for transmission by setting the TXDMAEN bit in the I2C_CR1 register. Data is loaded from an SRAM area configured using the DMA peripheral (see Section 13: Direct memory access controller (DMA) on page 263) to the I2C_TXDR register whenever the TXIS bit is set. bzw. für RX: DMA (Direct Memory Access) can be enabled for reception by setting the RXDMAEN bit in the I2C_CR1 register. Data is loaded from the I2C_RXDR register to an SRAM area configured using the DMA peripheral (refer to Section 13: Direct memory access controller (DMA) on page 263) whenever the RXNE bit is set. Only the data (including PEC) are transferred with DMA. Hier noch ein Link zum Reference Manual: http://www.st.com/content/ccc/resource/technical/document/reference_manual/4a/19/6e/18/9d/92/43/32/DM00043574.pdf/files/DM00043574.pdf/jcr:content/translations/en.DM00043574.pdf Schonmal Vielen Dank für eure Hilfe!