2021-05-11 06:44 AM
I have enabled DMA for usart2 in pins PD5 and PD6 and I have attached my main file. I have tried uart transfer by polling mode and interrupt mode both are working fine. But when I try for DMA mode the data is not transferring .I don't know where I have done the mistake. Kindly guide me for transferring data through DMA...i am using CUBEMX and CUBE IDE...
2021-05-11 07:07 AM
Double check your initialization code, that it associates the right DMA triggers, and you have the IRQ Handler in place.
Check the peripheral registers and clocks, vs Reference Manual.
2021-05-11 07:36 AM
Please check where is DMA memory. It must not be in the DTCM RAM (default location) since DMA has no access there.
See here: https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
2021-05-12 06:52 AM
Hi,
Thanks for the reply.. i have studied the link u have provided and I don't understand how to access the Txbuffregister address using cubeide.
2021-05-12 07:05 AM
You have to create a linker script section and then add your buffer to this section.
Section must be in the RAM that is accessible by DMA.
2021-05-12 08:07 AM
Sort of thing a Code Generator should flag/address auto-magically..
Also MPU configuration, and cache-coherency code
2021-05-13 06:49 AM
Hi nanotronicsnss ,
Here underlined the TX buff address..
Are you enabled the UART interrupt? and one more thing 1st use Normal mode instead of Circular mode in DMA config it will helpful to understand to you.
Change the TX buffer address using linker script .. see the example 2 in below mentioned link.. You can use any one method to solve your pblm..
https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
refer this page. It will helpful to solve your issue..
Thanks,
vel
2021-05-25 01:04 AM
Hi Vel,
Thanks for ur answer..i have changed the DMA address and have obtained DMA transmit