2013-02-07 03:09 PM
Hello everyone.
A week ago, I fought with a STM32F103, trying to get it fill some random buffer with its DMA1_Channel1 controller from its USART1 Rx ''events''. But neither the recipient memory would get filled, nor the DMA isr be reached. Back then, I had no time to deal with such ''nifty functionality'' as 1200bauds USART to DMA transfers. So I resorted to the USART1 Rx's interrupt, since 1200.bauds characters are a good laugh to a 72MHz core. But now, a week later, I still wonder why my previous code didn't work. So I re-implemented it...without success. Here's a Keil's �Vision snapshot of the incriminated peripherals, with the PC sitting on the very first iteration of the main loop. So everything has just been configured by the initialisation routine. Buses clocks, DMA, USART1... My eyes are playing tricks on me... I can't see where the bug is sitting. Anyone ? #usart-dma-interrupt-hair-loss2013-02-07 04:55 PM
I'm probably older and have more hair, but perhaps you should be using a different DMA channel.
Per RM0008, USART1_RX, DMA1, Channel 52013-02-07 05:39 PM
I don't know if you're older, but YOU ARE CERTAINLY MORE KNOWLEGEABLE than me !
If fact I was just reading the peripheral reference manual, RM0008 as you mentioned, and it's here , at page 272 : ''DMA1 request mapping'' fig.50 USART1 Rx is multiplexed on channel 5... Mea culpa ! And THANK YOU Clive1 !2013-02-07 06:41 PM
In this field perhaps. You're welcome, you presented your problem quite clearly without source code.
What are you programing at 1200 baud? A CNC machine?