cancel
Showing results for 
Search instead for 
Did you mean: 

DMA and GPIO on STM32C031G6

areum
Associate

I would like to sample the entire GPIOA Port using the DMA and TIM16. TIM16 triggers the DMA which in turn is supposed to copy the content of the IDR register of GPIO onto an array. This works fine if I use the CNT register of TIM16 as CPAR. When I switch to the IDR register of GPIOA, the transfer error flag is set.

I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too? If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

Many thanks in advance for any replies!

1 ACCEPTED SOLUTION

Accepted Solutions

> I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too?

Yes.

> If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

No.

Check out the 'F0 or the brand new 'U0 families.

JW

View solution in original post

1 REPLY 1

> I found a post stating that the GPIO on the G0 series is on a private bus and therefore not available for the DMA. Is this the case for the C0 series too?

Yes.

> If so, is there any other way to copy the content of the IDR register in a fixed interval except for doing it in a timer interrupt routine?

No.

Check out the 'F0 or the brand new 'U0 families.

JW